
/EXCLUDE
スペースを含むファイル名を に指定しようとしましたが、常に失敗します。ファイルを現在のディレクトリにコピーせず、古い DOS 短縮名ハックを使用せずにxcopy
、 にそのようなパスを指定するにはどうすればよいでしょうか?xcopy
/EXCLUDE
~1
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
適切なシェルでは問題なく機能するファイル名を引用する方法は、どれも xcopy では機能しません。何らかの理由で、"/EXCLUDE:<filename>"
構文によってオプション自体が認識されません。他の構文 では"/EXCLUDE:"<filename>"
、オプションが正しく解析されていることを示すメッセージがCan't read file: "<filename>"
出力されます。二重引用符によって、引数が複数の部分に分割されるのを防いでいます。ただし、このメッセージは、xcopy がファイルを開こうとする前に、ファイル名から二重引用符が適切に削除されていないことを示しています。
このことから、 で指定したパスの最初のコンポーネントが で/EXCLUDE
始まり"
、/EXCLUDE
ファイル名が で終わる場合"
、xcopy のオプションからそのファイルを正常に参照できるようです/EXCLUDE
。しかし、Windows では、ファイル名に 文字を入れることができません"
。
では、ファイル名に空白が多い現代の世界で xcopy を使用するにはどうすればよいでしょうか?