递归复制目录和子目录,并按扩展名过滤文件名

27

这是我现在所拥有的:

xcopy "c:\projects\SampleProject" "c:\temp\copytest" /E /H /EXCLUDE:elist.txt

除了通过文件扩展名过滤文件名之外,它可以完成我需要的所有工作。

例如:从c:\temp\copytest和其子目录中复制所有*.exe文件。

如何做到这一点?

3个回答

45

我也碰巧需要这个,发现如果你想要将特定类型的文件以当前文件夹结构复制到一个新文件夹中,你只需要执行以下操作:

xcopy [SourcePath]*.mp3 [DestinationPath]  /sy

/s: 复制目录和子目录,除非它们为空。如果您省略 /s,则 xcopy 将在单个目录中工作。

/y : 抑制确认覆盖现有目标文件的提示

文档


5
复制项目时,“/D”命令也很有用。它指示CMD仅复制比目的地文件更新的文件。 - Tomáš Zato

3

如果我想要复制 .mp3 文件以外的 .txt 文件怎么办? - user95227

0

我需要相同的过程(使用排除过滤器复制文件夹),并使用了@pollirrata的示例。

有一件事我必须提到,为了复制一个文件夹,我需要在目标目录中指定反斜杠以抑制提示问题。

因此,我最终采用了以下语法:

xcopy SourceFolder DestinationFolder\ /EXCLUDE:exclude.txt

exclude.txt文件的内容:

.mp3

为了仅复制特定扩展名的文件(例如 *.exe),我使用了

xcopy SourceFolder\*.exe DestinationFolder\

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接