
/EXCLUDE
Ich habe versucht, einen Dateinamen mit Leerzeichen anzugeben xcopy
, aber es stürzt immer ab. Wie kann ich einen solchen Pfad angeben, xcopy
ohne die /EXCLUDE
Dateien in das aktuelle Verzeichnis zu kopieren und ohne den alten DOS- ~1
Kurznamen-Hack zu verwenden?
c:\Users\binki\Documents\repos\xcopy_exclude_spacey>dir source
Volume in drive C is OS
Volume Serial Number is 7C4E-86D4
Directory of c:\Users\binki\Documents\repos\xcopy_exclude_spacey\source
2013-01-03 16:39 <DIR> .
2013-01-03 16:39 <DIR> ..
2013-01-03 16:39 0 a
2013-01-03 16:39 0 a b c
2013-01-03 16:39 0 b
2013-01-03 16:39 0 c
4 File(s) 0 bytes
2 Dir(s) 117,279,027,200 bytes free
c:\Users\binki\Documents\repos\xcopy_exclude_spacey>type "various exclude rules\a"
a
c:\Users\binki\Documents\repos\xcopy_exclude_spacey>xcopy /E /EXCLUDE:"various exclude rules\a" source dest
Can't read file: "various exclude rules\a"
0 File(s) copied
c:\Users\binki\Documents\repos\xcopy_exclude_spacey>xcopy /E "/EXCLUDE:various exclude rules\a" source dest
Invalid number of parameters
Keine der Möglichkeiten, den Dateinamen in Anführungszeichen zu setzen, die in einer anständigen Shell gut funktionieren würden, funktioniert bei mir mit xcopy. Aus irgendeinem Grund "/EXCLUDE:<filename>"
verhindert die Syntax, dass die Option selbst erkannt wird. Die andere Syntax, "/EXCLUDE:"<filename>"
, bewirkt, dass die Meldung Can't read file: "<filename>"
ausgegeben wird, die zeigt, dass die Option richtig analysiert wird: Die doppelten Anführungszeichen verhindern, dass das Argument in mehrere Teile aufgeteilt wird. Diese Meldung deutet jedoch darauf hin, dass die doppelten Anführungszeichen von xcopy nicht richtig aus dem Dateinamen entfernt werden, bevor es versucht, die Datei zu öffnen.
Daraus lässt sich schließen, dass ich diese Datei erfolgreich über die Option von xcopy referenzieren könnte, wenn die erste Komponente des von mir angegebenen Pfads /EXCLUDE
mit einem beginnt "
und mein /EXCLUDE
Dateiname mit endet . Windows verweigert mir jedoch die Verwendung des Zeichens in meinem Dateinamen."
/EXCLUDE
"
Also, wie verwende ich xcopy in einer modernen Welt mit ausufernden Dateinamen?