我如何recursion地将特定模式的文件复制到Windows上的单个文件夹中?

我需要从一组文件夹recursion地复制一组DLL和PDB文件到另一个文件夹中。 我不想在目标文件夹中重新创build文件夹层次结构。 我想使用内置的Windows工具,例如DOS命令。

mkdir targetDir for /r %x in (*.dll, *pdb) do copy "%x" targetDir\ 

如果您正在复制多个文件,并且不想继续回答“是”,请在上述命令末尾使用/ Y.

命令XCOPY

以recursion方式复制文件夹的示例:

 mkdir DestFolder xcopy SrcFolder DestFolder /E 

(如下面在WIKI之后的注释中指出,自DOS 3.2以来,该命令可用)

如果您的path中有空格,请确保您有正确的引号。

这是我的TFS构build服务器的postbuild事件(这就是为什么有“%%”)。 我需要复制所有的testing文件。

 if not exist "$(TargetDir)..\SingleFolderOutput" mkdir -p "$(TargetDir)..\SingleFolderOutput" for /r **%%x** in (*.dll, *.pdb, *.xml, *.xaml, *.exe, *.exe.config) do xcopy **"%%x"** "$(TargetDir)..\SingleFolderOutput" /Y 
 @echo off if %1'==' goto usage if %2'==' goto usage if %3'==' goto usage for /D %%F in (%1\*) do xcopy %%F\%2 %3 /D /Y for /D %%F in (%1\*.) do call TreeCopy %%F %2 %3 goto end :usage @echo Usage: TreeCopy [Source folder] [Search pattern] [Destination folder] @echo Example: TreeCopy C:\Project\UDI *.xsd C:\Project\UDI\SOA\Deploy\Metadata :end 

我不知道任何直接执行此操作的命令行工具,但可以创build一个批处理脚本来循环访问子文件夹,然后复制所需的文件。

但是,如果将所有文件全部放在同一个文件夹中,则可能会得到重复文件名的文件。