66

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

4

6 回答 6

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

如果您要复制多个文件并且不想一直回答“是”,请在上述命令的末尾使用 /Y。

于 2008-10-29T12:19:12.250 回答
37

命令 XCOPY

递归复制文件夹的示例:

mkdir DestFolder
xcopy SrcFolder DestFolder /E

(如下面在WIKI之后的评论中所述,该命令自 DOS 3.2 起可用)

于 2012-12-03T11:03:42.157 回答
0

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

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

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
于 2014-06-13T13:48:16.620 回答
0

为了收集 PBD 文件,我最终得到了这个:

cmd /q /c for /R "<your_source_folder>" %f in (*.pdb) do xcopy "%f" "<your_destination_folder>" /I /Y
于 2020-03-27T11:24:44.810 回答
-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
于 2011-04-12T08:57:09.260 回答
-3

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

但是,如果您将它们全部放在同一个文件夹中,您最终可能会得到具有重复文件名的文件。

于 2008-10-29T12:17:39.133 回答