При необходимости копирования файлов или папок Windows 11/10 или предыдущих версий ОС большинство пользователей полагаются на Проводник, реже — альтернативные файловые менеджеры. Это может быть удобно, но в некоторых случаях приводить к необходимости дополнительных действий, снижая эффективность работы.
Robocopy (Robust File Copy for Windows) — встроенный инструмент командной строки Windows, позволяющий надёжно, быстро выполнять операции копирования, а также настраивать их параметры. В этой инструкции подробно о Robocopy — преимущества, функции, примеры использования.
Отличия Robocopy от простого копирования
Сначала о том, зачем может потребоваться Robocopy, ведь, казалось бы, и доступные в Проводнике или с помощью «копировать» — «вставить» инструменты Windows отлично справляются. У Robocopy есть ряд преимуществ, которые делают утилиту мощным инструментом для самых разных задач. Среди них:
- Поддержка многопоточного копирования — может заметно ускорить процесс, особенно когда копируются множество мелких файлов.
- Удобное копирование папок со всей структурой и содержимым, но с возможностью исключать определённые элементы из копируемых: не только по имени, но и размерам, меткам времени, атрибутам.
- Функция зеркалирования — создание точной копии источника в целевом расположении (файлы, которых там нет, создаются, файлы которых нет в источнике, удаляются в целевом расположении).
- Создание журнала копирования.
- Возможность копирования с сохранением всех атрибутов, включая права доступна NTFS, владельца и другие.
- Управление поведением копирования при ошибках: пропуск и автоматическое продолжение, дополнительные попытки с заданным вами временем ожидания.
- Резервное копирование защищенных системных файлов.
- Применимость для автоматизации в скриптах, заданиях планировщика заданий.
В то время как стандартные средства копирования Windows 11/10 и предыдущих версий ОС могут быть достаточными для простых задач копирования документов или отдельных папок на флешку, Robocopy предоставляет вам эффективные средства настройки копирования и дополнительные функции, которые отсутствуют в Проводнике, при копировании/вставке или использовании команды copy.
Параметры Robocopy и примеры использования
Как было отмечено выше, Robocopy — встроенный инструмент командной строки и для работы с ним, а точнее для использования доступных при копировании функций потребуется разобраться с поддерживаемыми параметрами.
Ниже — основные параметры команд и примеры использования с пояснениями:
- Простое копирование без параметров: потребуется лишь указать источник и папку назначения. Если путь к папке содержит пробелы, возьмите его в кавычки. Для копирования защищенных папок или в защищенные расположения запускайте командную строку от имени администратора, дополнительно обратите внимание на параметр /ZB (рассмотрен далее). Особенности работы: в примерах ниже первая команда скопирует только файлы из первой папки во вторую папку (но не вложенные папки), а вторая — скопирует всё содержимое целиком вместе со всей структурой папок (параметр /E)
robocopy C:\Folder D:\Folder robocopy C:\Folder D:\Folder /E
Если вместо /E использовать /S будут скопированы все подпапки кроме пустых.
- /R:n /W:n — параметры для указания, сколько повторных попыток копирования требуется выполнить и сколько времени в секундах ожидать между ними. Может быть полезным при копировании из сетевых расположений при нестабильной работе сети или при копировании значительных объёмов данных с дисков с ошибками. Примеры использования (в первом случае — автоматическое продолжение при ошибках, во втором — 5 попыток с 10 секундным интервалом, затем — продолжение):
robocopy C:\Folder D:\Folder /E /R:0 /W:0 robocopy C:\Folder D:\Folder /E /R:5 /W:10
- /MT:n — многопоточное копирование, например:
C:\Folder D:\Folder /E /MT:16
- /MIR — зеркалирование. Команда
C:\Original D:\Backup /E /MIR
скопирует все файлы и вложенные папки с их содержимым в папку назначения на диске D, удалит из неё все папки и файлы, которые не содержатся на диске C, то есть создаст точную копию.
- /XD /XF — исключение папок (Exclude Directories) и файлов (Exclude Files) соответственно. Пример:
robocopy C:\Original D:\Backup /E /XD temp old*
В этой команде исключаем папку «temp» и все папки, названия которых начинаются с «old». Если указать точный путь к исключаемой папке, будет исключена только она, но не все папки с тем же именем. Исключение файлов работает аналогичным образом.
- /XA:атрибуты — исключение атрибутов (Exclude Attributes). Атрибуты: R (только для чтения), A (архивный), S (системный), H (скрытый), T (временный). Пример (копирование всех, кроме системных и скрытых элементов):
robocopy C:\Folder D:\Folder /E /XA:SH
- /MAX /MIN — исключение по размеру. Размер указывается в байтах (в одном килобайте 1024 байта и далее, не 1000). Пример использования (копируем файлы не более 100 Мб):
robocopy C:\Folder D:\Folder /E /MAX:104857600
- /MAXAGE /MINAGE — исключение по возрасту. Формат указания даты ГГГГММДД. Пример (копируем только файлы, которые менялись начиная с 1 января 2025 года):
robocopy C:\Folder D:\Folder /E /MINAGE:20250101
- /Z /B и /ZB — первый параметр включает режим перезапуска, позволяющий продолжить копирование большого файла если процесс прервётся, второй — включает специальное системное право для режима резервного копирования, игнорируя стандартные права доступа (то есть чтение возможно даже если прямых прав доступа нет), а сочетание параметров /ZB запускает копирование в режиме перезапуска, а при ошибках — включает режим резервного копирования. Может быть полезным при копировании системных папок Использование возможно только в командной строке от имени администратора.
- /LOG /LOG+ — запись информации об операции копирования в журнал. Первый вариант перезаписывает журнал заново, вторая — дописывает к существующему. Пример:
robocopy C:\Folder D:\Folder /LOG+:D:\Copy_Log.txt
Дополнительные параметры, рекомендуемые к использованию: /NP (отключает запись процентов в лог), /TEE (вывод в терминал и консоль). Примечание: для кириллицы в журнале используется кодировка Windows 866.
Используя поддерживаемые атрибуты, вы можете не только выполнять копирование вручную, но и создать .bat-файл или задание в планировщике заданий Windows для автоматизации рутинных действий по созданию резервных копий важных данных.