xcopy каталоги и подкаталоги рекурсивно и фильтровать только имена файлов по расширению

Вот что у меня есть на данный момент:

xcopy "c:\projects\SampleProject" "c:\temp\copytest" /E /H /EXCLUDE:elist.txt

Он выполняет всю необходимую мне работу, кроме фильтрации имен файлов по расширениям.

Например: скопируйте все *.exe файлы из c:\temp\copytest и подкаталогов.

Как это сделать?


person DxCK    schedule 01.06.2010    source источник


Ответы (3)


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

xcopy [SourcePath]*.mp3 [DestinationPath]  /sy

/s: Копирует каталоги и подкаталоги, если они не пусты. Если вы опустите /s, xcopy будет работать в пределах одного каталога.

/y: подавляет запрос на подтверждение того, что вы хотите перезаписать существующий целевой файл.

Документация

person pollirrata    schedule 22.04.2013
comment
При копировании проектов также полезен оператор /D. Он приказывает CMD копировать только те файлы, которые новее, чем их место назначения. - person Tomáš Zato - Reinstate Monica; 18.09.2015

Что-то типа:

@echo off
setlocal
set DIR=
set OUTPUTDIR=C:\Documents and Settings\<username>\Desktop\sandbox1\output
for /R %DIR% %%a in (*.mp3) do xcopy "%%a" "%OUTPUTDIR%"

См. (http://technet.microsoft.com/en-us/library/bb490909.aspx)

person colemik    schedule 02.09.2010
comment
что, если я хочу скопировать файлы .txt в дополнение к файлам .mp3? - person user95227; 18.09.2017

Мне нужна была та же процедура (копировать папки с фильтром исключения) и я использовал пример @pollirrata.

Я должен упомянуть одну вещь: чтобы скопировать папку, мне нужно было указать обратную косую черту для целевого каталога, чтобы подавить запрос вопроса.

Итак, я закончил со следующим синтаксисом:

xcopy SourceFolder DestinationFolder\ /EXCLUDE:exclude.txt

Содержимое файла exclude.txt:

.mp3

Чтобы копировать только файлы с определенным расширением (например, *.exe), я использовал

xcopy SourceFolder\*.exe DestinationFolder\
person gitrust    schedule 25.09.2020