不能排除带空格的路径(xcopy)

不能排除带空格的路径(xcopy)

我尝试使用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 名称。

相关内容