Я пытаюсь скопировать все файлы в различных подкаталогах, имеющих расширение, 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
этот код скопирует без перезаписи и создаст папки и подпапки