Как я могу рекурсивно копировать файлы определенного шаблона в одну плоскую папку в Windows?
Мне нужно скопировать набор DLL и PDB файлов из набора папок рекурсивно в другую папку. Я не хочу воссоздавать иерархию папок в целевой папке.
Я хочу использовать встроенные инструменты Windows, например команды DOS.
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