我如何为 xcopy 指定一个其中包含空格的 /EXCLUDE 文件?

我如何为 xcopy 指定一个其中包含空格的 /EXCLUDE 文件?

我曾尝试为 指定一个/EXCLUDE带空格的文件名xcopy,但总是出错。如何才能指定这样的路径xcopy而不将/EXCLUDE文件复制到当前目录,也不使用旧的 DOS~1短名称 hack?

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

在合适的 shell 中,引用文件名的方法都行不通,但对于我来说,在 xcopy 中却行不通。由于某种原因,"/EXCLUDE:<filename>"语法阻止识别选项本身。另一种语法"/EXCLUDE:"<filename>",会导致打印消息Can't read file: "<filename>",显示选项正在被正确解析:双引号阻止将参数拆分为多个部分。但是,此消息表明 xcopy 在尝试打开文件之前没有正确地从文件名中删除双引号。

由此看来,如果我在 中指定的路径的第一个部分/EXCLUDE以 开头,"并且我的/EXCLUDE文件名以 结尾",那么我将能够/EXCLUDE成功地从 xcopy 的选项中引用该文件。但是 Windows 拒绝让我将"字符放在我的文件名中。

那么,在文件名充满空格的现代世界中我该如何使用 xcopy 呢?

相关内容