Мне нужно скопировать набор файлов DLL и PDB из набора рекурсивно в другую папку. Я не хочу воссоздавать иерархию папок в целевой папке. Я хочу использовать встроенные инструменты Windows, например. DOS.
Как я могу рекурсивно копировать файлы определенного шаблона в одну плоскую папку в Windows?
Ответ 1
mkdir targetDir
for /r %x in (*.dll, *pdb) do copy "%x" targetDir\
Используйте/Y в конце указанной выше команды, если вы копируете несколько файлов и не хотите отвечать "Да".
Ответ 2
команда XCOPY
Пример копирования папки рекурсивно:
mkdir DestFolder
xcopy SrcFolder DestFolder /E
(как указано ниже в комментарии после WIKI, эта команда была доступна с DOS 3.2)
Ответ 3
Убедитесь, что у вас есть правильные цитаты, если у вас есть пробелы в вашем пути.
Это мое событие 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
Ответ 4
@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
Я не знаю о каких-либо инструментах командной строки, которые делают это напрямую, но вы можете создать пакетный пакет script для прокрутки подпапок и скопировать нужные вам файлы.
Однако вы можете получить файлы с повторяющимися именами файлов, если поместить их в одну папку.