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

2nbm6dog  于 2022-11-18  发布在  Windows
关注(0)|答案(7)|浏览(131)

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

1szpjjfi

1szpjjfi1#

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

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

7qhs6swi

7qhs6swi2#

命令XCOPY

递归复制文件夹示例:

mkdir DestFolder
xcopy SrcFolder DestFolder /E

(as在WIKI后面的注解中指出,该命令自DOS 3.2开始可用)

oogrdqng

oogrdqng3#

如果路径中有空格,请确保引号正确。
这是我的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
v1uwarro

v1uwarro4#

为了收集PBD文件,我最终得到了这样的结果:

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

cclgggtu5#

注意:如果您在cmd-file中使用 * 表示/r*,则必须为百分之二的字符数:
对于(.dll,pdb)中的/r%%x**,执行复制**"%%x”**目标目录\

093gszye

093gszye6#

@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
oknwwptz

oknwwptz7#

我不知道有什么命令行工具可以直接执行此操作,但您可以创建一个批处理脚本来循环遍历子文件夹,并复制所需的文件。
但是,如果您将所有文件放置在同一个文件夹中,最终可能会得到具有重复文件名的文件。

相关问题