2015-05-12 3 views
0

Мне нужно скопировать две папки, назовем их A и B, от F:\Sourcefolder\ до F:\destinationfolder вложенных папок (не для самой папки назначения).Пакетное копирование во все папки

Теперь я знаю, когда партия копирования файлов (например, file.exe) предполагается выглядеть как этот

for /r "F:\destinationfolder" %%i in (.) do @copy "F:\Sourcefolder\file.exe" "%i" 

В каждой из этих подпапок есть много файлов. После копирования папок A и B во все подпапки, я хотел бы переместить все файлы в подпапках в папку A в их папке. Возможно ли это сделать?

ответ

0

команда XCOPY предназначена для копирования папки, FOR /D перечислит Level1 папки:

for /d %%a in ("F:\destinationfolder\*") do (
    XCOPY "F:\Sourcefolder\A\*" "%%~fa" /s /i 
    XCOPY "F:\Sourcefolder\B\*" "%%~fa" /s /i 
) 

для рекурсивного копирования (все вложенные папки):

for /r /d "F:\destinationfolder\" %%a in (*) do (
    XCOPY "F:\Sourcefolder\A\*" "%%~fa" /s /i 
    XCOPY "F:\Sourcefolder\B\*" "%%~fa" /s /i 
) 

FOR /R не будет работать должным образом, если нет подстановочные в скобках - ? или *

ROBOCOPY, XCOPY

+0

'xcopy' устарел, используйте' robocopy' в новых скриптах. – Melebius

+0

Итак, если я правильно понял вас, второй код скопирует папки A и B во все подпапки моей папки назначения? –

+0

@ ĐurađStanković это должно, но я не тестировал его (проверен только первый скрипт) – npocmaka

Смежные вопросы