如何以递归方式将特定模式的文件复制到Windows上的单个平面文件夹中?

时间:2008-10-29 12:11:57

标签: windows file-io command-line

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

6 个答案:

答案 0 :(得分:104)

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

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

答案 1 :(得分:36)

命令XCOPY

递归复制文件夹的示例:

mkdir DestFolder
xcopy SrcFolder DestFolder /E

(如下面WIKI中的注释所述,该命令自DOS 3.2起可用)

答案 2 :(得分:0)

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

这是我的TFS构建服务器的postbuild事件(这就是为什么有" %%")。我需要复制所有测试文件。

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

答案 3 :(得分:0)

对于收集PBD文件,我最终得到了这一点:

cmd /q /c for /R "<your_source_folder>" %f in (*.pdb) do xcopy "%f" "<your_destination_folder>" /I /Y

答案 4 :(得分:-1)

@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

答案 5 :(得分:-2)

我不知道有任何直接执行此操作的命令行工具,但您可以创建一个批处理脚本来遍历子文件夹,并复制所需的文件。

但是,如果将文件全部放在同一文件夹中,则可能会出现文件名重复的文件。