我有一个这样的目录结构:
folder1\
help.txt
folder2\
help.txt
folder3\
help.txt
...
我想使用复制文件夹1的内容机器人复制。 例如:
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
答案1
您必须包括满的要排除的文件的路径(包括驱动器)。相对路径不起作用。
这有效:
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"
答案2
我觉得没有办法通过文件名做到这一点。您可以为不想复制的文件设置一个属性,而您“知道”源树中的其他文件都没有这个属性,然后使用 /xa 排除具有该属性的文件。
但是,如果失败了,您将需要使用其他工具。
这将起作用:
echo folder1\help.txt > \temp\excl.txt
xcopy /E folder1 destination /EXCLUDE:\temp\excl.txt
实际上,如果你有一个如下所示的目录结构:
folder1\
help.txt
folder1\
help.txt
它可能会排除这两个文件。
答案3
您可以使用 %CD% 来获取当前目录。这应该可以帮助您排除特定目录。更多帮助在这里: