Это должно работать:
for /r %%a in (*.cmd) do xcopy %%a C:\DESTINATION%%~pa
Обратите внимание, что DESTINATION
должен никогда быть подкаталогом каталога, из которого вы пытаетесь скопировать, в противном случае for /r
переходит в рекурсивный цикл копирования файлов, которые он уже скопировал, создавая более длинные и длинные пути к каталогам (не спрашивайте меня, откуда я знаю).
Вы можете сделать его немного более надежным, используя xcopy /c
(чтобы продолжить копирование, даже если возникнут ошибки). Вы также можете посмотреть на xcopy /?
, чтобы увидеть, есть ли что-то еще ценное (/q
, /r
, /o
и т. Д.).