Batch file 如何使用xcopy从复制中排除特定文件

Batch file 如何使用xcopy从复制中排除特定文件,batch-file,xcopy,Batch File,Xcopy,我不熟悉Windows批处理文件,但我正在编写一个.bat文件,它只是将一组文件从一个地方复制到另一个地方,以维护文件目录结构。使用xcopy这很简单,但我需要排除一些文件被复制。您可以使用/exclude创建一个包含要排除的字符串的文本文件,但这不仅排除具有文本文件中确切名称的文件,还排除其文件名包含文本文件中任何字符串的所有文件 这意味着,如果我想排除任何名为123.txt的文件,并将此字符串放入我的排除文本文件中,如果源文件夹或其任何子文件夹中的任何位置都有一个名为1123.txt的文件也

我不熟悉Windows批处理文件,但我正在编写一个
.bat
文件,它只是将一组文件从一个地方复制到另一个地方,以维护文件目录结构。使用
xcopy
这很简单,但我需要排除一些文件被复制。您可以使用
/exclude
创建一个包含要排除的字符串的文本文件,但这不仅排除具有文本文件中确切名称的文件,还排除其文件名包含文本文件中任何字符串的所有文件

这意味着,如果我想排除任何名为
123.txt
的文件,并将此字符串放入我的排除文本文件中,如果源文件夹或其任何子文件夹中的任何位置都有一个名为
1123.txt
的文件也将被排除

如何仅排除具有特定文件名的文件被复制?

你能在每个文件名前加一个斜杠吗?这应该行得通

乙二醇

而不是

123.txt

blah.txt

使用

\123.txt

\blah.txt


尝试创建一个临时文件夹,
xcopy
将所有文件复制到该文件夹中,删除不需要的文件,然后
xcopy
将这些文件复制到最终目标。最后,用
rd xyzy/q/s

删除临时文件夹及其内容。你应该看看
robocopy
该命令有很多开关,也许其中一些开关可以满足你的需要。不使用DOS…只使用windows批处理文件命令。编辑后的问题。我需要运行此程序的机器正在运行XP,显然robocopy在windows 7Robocopy for XP之前并不是标准的-我没有选择更改机器的任何内容,这是一个广泛分布的标准设置。