使用robocopy复制时仅排除具有相同名称的某些文件


15

我有这样的目录结构:

folder1\
    help.txt
    folder2\
        help.txt
    folder3\
        help.txt
    ...

我想使用robocopy复制folder1的内容。例如:

robocopy folder1 destination /E

我想排除 folder1中的help.text文件,但 folder2,folder3等中的help.txt文件包括在内。在目录结构的其他位置也可能有名为help.txt的文件,所以我不想这么费劲编码要包含的文件的路径。

我可以使用以下命令排除所有名为help.txt的文件,但是有没有办法仅排除folder1根目录中的help.txt文件?

robocopy folder1 destination /E /XF help.txt

Answers:


15

您必须包括 要排除的文件完整路径(包括驱动器)。相对路径不起作用。

这有效:

robocopy folder1 destination /E /XF "c:\somedir\another dir\folder1\help.txt"

这不是:

robocopy folder1 destination /E /XF "folder1\help.txt"

这也不是:

robocopy folder1 destination /E /XF ".\folder1\help.txt"

您可以像这样排除多个文件robocopy folder1 destination /E /XF "c:\file1" "c:\file2"
schnatterer 2014年

@ Dennis-Williamson,感谢您的正确回答。可惜不能与通配符一起使用:robocopy folder1 destination /E /XF "c:\somedir\another dir\folder1\help.txt*"导致错误。
Olivier Faucheux,2015年

因此,在尝试了2个小时的其他命令后,此方法成功了。太感谢了!
Christopher Chipps

0

我看不到有任何方法可以通过文件名来实现。您可以在不想复制的文件上设置一个属性,使您“知道”不在源树中的任何其他文件上,然后使用/ xa排除具有该属性的文件。

否则,您将需要使用其他工具。

这将起作用:

echo folder1\help.txt > \temp\excl.txt
xcopy /E folder1 destination /EXCLUDE:\temp\excl.txt

实际上,如果您的目录结构如下所示:

folder1\
  help.txt
  folder1\
    help.txt

它可能会排除这两个文件。


我看错了。
wfaulk

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.