Копирование файлов из командной строки в несколько потоков

Автор: | 01.04.2015

Начиная с Windows Vista, в состав с операционной системы входит  утилита robocopy. У этой утилиты хороший функционал.

Robocopy разработана для отказоустойчивого копирования каталогов и деревьев каталогов. Она обладает возможностью копирования всех (или выборочных) NTFS атрибутов и свойств, имеет дополнительный код для перезапуска при применении с сетевым соединением в случае его разрывов.

Так же есть возможность копирования файлов в несколько потоков, по умолчанию 8 и до 128. Что может сильно изменить скорость копирования.

За эту функцию отвечает ключ /МТ[:n]

Простой пример — копирование содержимого каталога C:\A в каталог C:\B (включая файлы, атрибуты и метки времени), рекурсивно включая пустые каталоги (/E):

robocopy C:\A c:\B /E

Копировать содержимое каталога C:\A рекурсивно (/E), включая все атрибуты файлов (/COPYALL, эквивалентно /COPY:DATSOU, D=данные, A=аттрибуты, T=метки времени, S=безопасность=списки контроля доступа NTFS, O=владелец, U=аудит), не повторять попытки для заблокированных файлов (/R:0) (по умолчанию задан один миллион повторных попыток копирования), сохранять оригинальные метки времени у каталогов (/DCOPY:T — начиная с версии XP026 или более поздней):

robocopy C:\A C:\B /COPYALL /E /R:0 /DCOPY:T

Создать зеркальную копию каталога C:\A в каталоге B на сетевом ресурсе \\backupserver, удалить из каталога B все отсутствующие в каталоге C:\A файлы (/MIR), использовать журнал возобновления (/Z) на случай потери сетевого соединения:

robocopy C:\A \\backupserver\B /MIR /Z
Полный список команд доступен на странице Microsoft TechNet — Robocopy