Как я могу рекурсивно копировать файлы определенного шаблона в одну плоскую папку в Windows?



Мне нужно скопировать набор DLL и PDB файлов из набора папок рекурсивно в другую папку. Я не хочу воссоздавать иерархию папок в целевой папке.
Я хочу использовать встроенные инструменты Windows, например команды DOS.

610   5  

5 ответов:

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

используйте /Y в конце приведенной выше команды, если вы копируете несколько файлов и не хотите продолжать отвечать "Да".

команда XCOPY

пример рекурсивного копирования папки:

mkdir DestFolder
xcopy SrcFolder DestFolder /E

(как указано ниже в комментарии вида WIKI эта команда была доступна с DOS версии 3.2)

убедитесь, что у вас есть цитаты правильно, если у вас есть пробелы в пути.

Это мое событие postbuild для моего сервера сборки 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
@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

Я не знаю о каких-либо инструментах командной строки, которые делают это напрямую, но вы можете создать пакетный скрипт для перебора вложенных папок и копирования необходимых файлов.

однако вы можете получить файлы с повторяющимися именами файлов, если вы поместите их все в одну папку.

Comments

    Ничего не найдено.