我尝试使用xcopy /exclude:exclude.txt
,但其中一条路径中exclude.txt
有空格,无法使用。有没有什么解决方法?
答案1
阅读 xcopy 帮助的相关部分
/EXCLUDE:file1[+file2][+file3]...
Specifies a list of files containing strings. Each string
should be in a separate line in the files. When any of the
strings match any part of the absolute path of the file to be
copied, that file will be excluded from being copied. For
example, specifying a string like \obj\ or .obj will exclude
all files underneath the directory obj or all files with the
.obj extension respectively.
我们可以看到,排除选项不适用于路径或文件名,而是“过滤器”。为了说明这一点,我将尝试给出一个简短的示例。请看此 exclude.txt
Unicorns
Dolphins
这将过滤掉名称中包含独角兽或海豚的任何文件。例如,Dolphins.txt 将被过滤,但 Ponys.txt 则可以。
回到你的问题。你的过滤器不匹配的原因不是路径中的空格。默认情况下,xcopy 只关心文件名而不是完整路径,任何包含完整路径的过滤器都不会匹配,文件将被复制。
您可以通过在命令中提供 /f 标志来更改 xcopy 的此行为。这应该可以解决您看到的问题。
答案2
编辑exclude.txt
并在包含空格的路径周围加上双引号。
答案3
在这种情况下,我做的一件事是使用“短名称”(旧式 DOS 8.3 名称)。您可以使用 获得此名称dir /x
。自 Win 95 以来允许长文件名的每个 Windows 版本也允许文件/目录使用此备用 8.3 名称。