Warum kommt bei cmd xcopy "Unzulässige Parameteranzahl" raus?
Hallo, folgendes Problem:
Ich habe eine batchdatei erstellt, um Dateien auszulagern (auf eine externe Festplatte, die Ordnerstruktur soll aber behalten werden).
Bei Folgendem Code (%1 für die zu kopierende Datei mit Pfad; %short% für das Zielverzeichnis [%1 ohne die ersten 23 Zeichen]):
xcopy "%1" "C:\NTFS\Mathis_SEAGATE\Anstatt_PC\%short%" /s
Bekomme ich folgende Fehlermeldung:
Unzulässige Parameteranzahl
Ich komme nicht weiter. An den fehlenden Gänsefüsschen kann es eigentlich nicht liegen, die habe ich ja gemacht.
Ich hoffe ihr könnt mir helfen und Bedanke mich jetzt schonmal...
4 Antworten
Enthalten der Parameter %1 und die Variable %short% ihrerseits Anführungszeichen?
Die muss man ggf. vorher entfernen.
(Wenn die Anführungszeichen nicht zuverlässig da sind, wüsste ich dafür leider nur einen Weg über mehrere Abfragen oder einen "Missbrauch" von FOR.)
Ja, das war es. Vielen Dank für deine Hilfe!
Lösung:
Paramteter %1 hat automatisch Anführungszeichen, wenn ein Leerschritt im Pfad vorkommt. Diese sind somit teilweise doppelt gesetzt.
Danke für deine Hilfe!
Probier vielleicht mal
xcopy "%~1" "C:\NTFS\Mathis_SEAGATE\Anstatt_PC\%short%" /s
Wenn auch das nicht geht, stimmt irgendetwas mit den Variablen nicht.
~Tim
Danke für den Tipp. Ja, es stimmte was mit den Variablen nicht ;)
Lösung:
Paramteter %1 hat automatisch Anführungszeichen, wenn ein Leerschritt im Pfad vorkommt. Diese sind somit teilweise doppelt gesetzt.
Danke für deine Hilfe!
Baue die Zeilen echo %1 und echo %short% ein, vielleicht siehst du dann etwas ..
Habe ich gemacht. Mit PWolff bin ich dann zu Lösung gekommen...
Lösung:
Paramteter %1 hat automatisch Anführungszeichen, wenn ein Leerschritt im Pfad vorkommt. Diese sind somit teilweise doppelt gesetzt.
Danke für deine Hilfe!
Dürfen wir Mal den Inhalt der Variablen %1 und %short% sehen.
Ja. Hätte ich geschickt. Dank PWolff hat sich die Frage aber geklärt:
Lösung:
Paramteter %1 hat automatisch Anführungszeichen, wenn ein Leerschritt im Pfad vorkommt. Diese sind somit teilweise doppelt gesetzt.
Danke für deine Hilfe!