Robocopy – это встроенная консольная утилита Windows для копирования файлов, которую можно использовать для синхронизации/репликации файлов и каталогов, и в сценариях резервного копирования. Robocopy (Robust File Copy) доступна начиная с Windows NT 4.0 Resource Kit, но по умолчанию эта функция появилась только в Windows Vista и Windows Server 2008. Robocopy заменяет Xcopy и copy, как более функциональная.
Полный синтаксис утилиты robocopy (все параметры и их описания) доступны по команде в команд:
robocopy /?
Вы можете зеркалировать (синхронизировать) содержимое двух каталог с помощью следующей команды robocopy (под зеркалированием понимается копирование файлов из целевой папки с удалением файлов в целевом каталоге, если они удалены в источнике).
robocopy C:\katalog1\ D:\kataloge2\ /MIR /COPYALL /Z /B /J /R:3 /W:1 /LOG:robocopy.log
C:\katalog1\ — исходный каталог, откуда копируются файлы
D:\kataloge2\ — каталог назначения, куда скопируются файлы
/MIR – полное зеркалирование данных в source и dest директориях. Файлы, удаленные из source директории или не присутствующие в ней, также будут удалены из dest. Если вы хотите, чтобы удаленные из source файлы оставались в dest, то поменяйте параметр /MIR на /E
/COPYALL – копирует всю информацию о файле (Атрибуты, параметры безопасности и т.д.). Как альтернатива, можно применять флаг /COPY:DT для копирования timestamp, а не всей информации. /COPALL требует прав администратора.
/Z – robocopy продолжит копирование файла при обрыве. Полезно при копировании больших файлов (неплохая альтернатива копированию файлов по BITS)
/B – позволяет robocopy избегать ошибки access denied error. В этом режиме robocopy игнорирует все права на файлы, которые могли бы помешать прочитать/записать файл. Этот режим требует прав администратора либо участие в группе Операторы архива.
/J – Копирование без буфера (файлового кэша, оперативной памяти). Эффективно для больших файлов.
/R:3 – количество попыток скопировать недоступный файл. Значение по умолчанию – миллион, поэтому необходимо его сменить.
/W:1 – секунды между попытками скопировать недоступный файл. Значение по умолчанию – 30 секунд.
/LOG – путь к файлу лога
С помощью ключа /mov или /move вы можете переместить файлы (а точнее удалить успешно скопированные файлы из исходной директории):
robocopy C:\katalog1\ D:\kataloge2\ /MOVE /E /COPYALL /Z /B /J /R:3 /W:1 /LOG:robocopy.log
/MOVE – удалить файлы и директории из исходной папки, после того как они были скопированы. Имейте в виду, что этот ключ нужно использовать вместе с /E или /S, в противном случае вы перенесете только файлы, но не директории. Если вы хотите перенести только файлы, используйте ключ /MOV
Содержание robocopy_mypc.bat:
@echo off
rem "MYKOMPUTER.RU"
echo == Зеркалирование каталогов ==
robocopy C:\katalog1\ D:\katalog2 /MIR /COPYALL /Z /B /J /R:3 /W:1 /LOG:robocopy.log
pause