Есть ли способ рекурсивно копировать каталоги внутри файла .bat? Если так, то пример был бы отличным. Спасибо.
Есть ли способ рекурсивно копировать каталоги внутри файла .bat? Если так, то пример был бы отличным. Спасибо.
Ответы:
Посмотрите на xcopy , который будет рекурсивно копировать файлы и подкаталоги.
Примеры приведены на 2/3 страницы. Особенно полезны:
Чтобы скопировать все файлы и подкаталоги (включая любые пустые подкаталоги) с диска A на диск B, введите:
xcopy a: b: /s /e
Copy-Item -Recurse
в PowerShell.
Прочитав комментарии к принятому ответу, я попробовал команду robocopy , которая у меня сработала (с использованием стандартной командной строки из 64-битной версии Windows 7 SP 1):
robocopy source_dir dest_dir /s /e
/E
подразумевает /S
? copy subdirectories, including Empty ones.
/S
и, /E
похоже, подразумевают противоположные вещи в соответствии с помощью robocopy /?
- s - это «не пустые», e - «пустые». Я думаю, тебе стоит просто выбрать одну.
robocopy
возвращает код выхода 1, если один или несколько файлов были успешно скопированы.
Вы можете написать рекурсивный алгоритм в Batch, который даст вам точный контроль над тем, что вы делаете во всех вложенных подкаталогах:
@echo off
call :treeProcess
goto :eof
:treeProcess
rem Do whatever you want here over the files of this subdir, for example:
copy *.* C:\dest\dir
for /D %%d in (*) do (
cd %%d
call :treeProcess
cd ..
)
exit /b
Пакетный файл Windows зацикливается на каталогах для обработки файлов?