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

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

Я пытаюсь скопировать все файлы в различных подкаталогах, имеющих расширение, JPGрасположенное на, C:в один каталог на D:. Я не хочу сохранять структуру каталогов.

Вот насколько мне удалось дойти:

for /r C:\ %f in (*.jpg) do @copy "%f" D:\pictures

После этого меня спрашивают, хочу ли я перезаписать D:\pictures. Если я отвечаю yes, то получаю один файл, а если отвечаю нет, то файлы не копируются.

Я также пробовал добавлять /yв конец команды, но это просто перезаписывает предыдущие файлы, оставляя только последний.

решение1

Это должно сработать:

for /r C:\ %f in (*.jpg) do @copy "%f" D:\pictures\

Объяснение:

Команда copy "%f" D:\picturesкопирует файл %fв указанное место D:\pictures, т. е. файл picturesв каталоге D:\.

Добавление завершающего символа \гарантирует, что copyон будет рассматриваться picturesкак каталог.

Если вы копируете несколько файлов в одно место (например, copy *.* D:\backup), copyавтоматически обрабатывается backupкак каталог. Но это не тот случай, когда вы копируете один файл.

решение2

для /R c:\ %%1 в ("*.txt") сделать @xcopy "%%1" d:\txttemp%%~p1 /e/i/s/q/h

этот код скопирует без перезаписи и создаст папки и подпапки

Связанный контент