Вот некоторые наиболее важные функции ROBOCOPY:
- многопоточное копирование;
- зеркалирование или копирование данных (бэкап) «на лету»;
- автоматическое возобновление копирования.
Примеры, приведённые в данной статье, рассчитаны прежде всего на новичков. Более опытные пользователи могут узнать о дополнительной функциональности ROBOCOPY здесь и ещё здесь:
Также, чтобы увидеть список команд, в командной строке можно просто ввести robocopy /? и нажать «ENTER».
ROBOCOPY может копировать только папки целиком. С отдельными файлами приложение не работает.
Задаём параметры копирования
Проще всего задать команды, по которым ROBOCOPY будет выполнять задачи, через пакетный файл (файл с расширением .BAT или .cmd). Пакетный файл представляет собой обычный текстовый файл, в котором одна за другой задаются команды.
Шаг 1
Пуск -> Все программы -> Стандартные -> Блокнот.
Шаг 2
Далее необходимо ввести в Блокноте нужные нам команды и сохранить файл с расширением .BAT, после чего дважды кликнуть по нему, тем самым запустив команды на обработку.
Для демонстрации работы программы я создал три папки (Data1, Data2 и Data3) с каким-то контентом, которые нужно скопировать. Одна папка расположена на диске E:, а две других — на диске F:. Я хочу скопировать эти папки как описано ниже:
Команды для ROBOCOPY записываются следующим образом:
robocopy
В моём случае, чтобы добиться желаемой цели, в текстовом файле нужно ввести:
Здесь источниками являются
E:\Data1
F:\Data2
F:\Data3
и директориями для копирования файлов
G:\Backups\Data1
G:\Backups\Data2
Q:\Backups\Data3
Данные пункты обязательны для работы ROBOCOPY.
Команда PAUSE в конце списка команд не позволит командной строке закрыться после завершения процесса копирования. Так вы сможете спокойно просмотреть результаты работы программы.
Теперь, дважды кликнув по созданному .BAT файлу, запустится командная строка и ROBOCOPY выполнит поставленные задачи.
Чтобы полностью задействовать всю мощь функционала ROBOCOPY, потребуется ввести некоторые дополнительные опции в командной строке самой программы.
В следующем примере я изменю существующие команды так, чтобы:
1) Были скопированы все подпапки в пределах указанной папки, даже если они пустые.
2) К существующему бэкапу, который мы только что сделали, были добавлены только новые или измененные файлы и папки (этот процесс займет меньше времени).
3) Не отображался прогрессбар — информация о состоянии операции не отображается, отсюда создаётся гораздо меньший по объёму лог-файл.
4) Информация, которая отображается в окне командной строки, была сохранена в отдельный лог-файл для дальнейшего его изучения.
Чтобы проделать всё вышеперечисленное нужно добавить к существующим командам ROBOCOPY некоторые опции:
Где:
/e = копировать все подпапки, даже если они пустые
/mir = зеркалирование (копирует только новые или измененные файлы)
/np = не показывать прогрессбар
/log: = создать лог-файл
Запись /log+: во второй и третьей строке моего .BAT файла гарантирует, что результаты второй и третьей операции будут записаны в журнал, созданный для первой команды. Таким образом будет создан только один лог-файл вместо трёх.
Лог-файл сохраняется в той же папке, где находится .BAT файл.
Внимание! Используйте опцию /MIR с особой осторожностью, так как с ней ROBOCOPY при определённых условиях может удалить файл и из источника и из папки для записи бэкапа.
Это обычно происходит, если файл/папка в директории с бэкапом был удалён. ROBOCOPY автоматически «синхронизирует» бэкап и исходную папку, тем самым удалив файл/папку из папки-источника. Чтобы избежать этой ситуации, никогда не удаляйте файлы/папки из директории с бэкапом. Сначала удалите контент из папки-источника, а затем заново выполните резервное копирование.
Если вы сомневаетесь в своих действиях, то лучше не используйте опцию /MIR.
С опциями, заданными выше, все действия ROBOCOPY записываются в лог-файл и на экран не выводятся. Чтобы информация о выполнении команды выводилась на экран и одновременно записывалась в лог-файл, нужно к каждой команде добавить опцию /tee.
Вот как выглядит типичный лог-файл ROBOCOPY. То же самое можно увидеть и в окне программы.
Так как одна из папок копируется в сетевое хранилище, то в процессе бэкапа могут возникнуть обрывы связи. Из-за этого могут потеряться некоторые критические файлы. Чтобы предотвратить это, к третьей строке нужно добавить опцию /z как показано под спойлером.
Эта опция позволяет повторить последнюю попытку копирования в случае неудачи. Программа будет пытаться скопировать файл каждые 30 секунд, пока у неё это не получится.
ROBOCOPY поддерживает многопоточное копирование (опция /mt). Можно выбрать число потоков в диапазоне от 1 до 128. По умолчанию используется 8 потоков.
Ну и наконец вы можете автоматизировать резервное копирование данных с помощью планировщика заданий Windows 7 (находится в Пуск -> Программы -> Стандартные -> Служебные). Просто создайте простую задачу и задайте определённое время, когда планировщик должен запустить созданный вами командный файл.
- многопоточное копирование;
- зеркалирование или копирование данных (бэкап) «на лету»;
- автоматическое возобновление копирования.
Примеры, приведённые в данной статье, рассчитаны прежде всего на новичков. Более опытные пользователи могут узнать о дополнительной функциональности ROBOCOPY здесь и ещё здесь:
Также, чтобы увидеть список команд, в командной строке можно просто ввести robocopy /? и нажать «ENTER».
ROBOCOPY может копировать только папки целиком. С отдельными файлами приложение не работает.
Задаём параметры копирования
Проще всего задать команды, по которым ROBOCOPY будет выполнять задачи, через пакетный файл (файл с расширением .BAT или .cmd). Пакетный файл представляет собой обычный текстовый файл, в котором одна за другой задаются команды.
Шаг 1
Пуск -> Все программы -> Стандартные -> Блокнот.
Шаг 2
Далее необходимо ввести в Блокноте нужные нам команды и сохранить файл с расширением .BAT, после чего дважды кликнуть по нему, тем самым запустив команды на обработку.
Для демонстрации работы программы я создал три папки (Data1, Data2 и Data3) с каким-то контентом, которые нужно скопировать. Одна папка расположена на диске E:, а две других — на диске F:. Я хочу скопировать эти папки как описано ниже:
Data1 на диске E: — копируем в папку Backups на диске G: (внешний USB накопитель)
Data2 на диске F: — копируем в папку Backups на диске G: (внешний USB накопитель)
Data3 на диске F: — копируем в папку Backups на диске Q: (сетевое хранилище)
Команды для ROBOCOPY записываются следующим образом:
robocopy
В моём случае, чтобы добиться желаемой цели, в текстовом файле нужно ввести:
Здесь источниками являются
E:\Data1
F:\Data2
F:\Data3
и директориями для копирования файлов
G:\Backups\Data1
G:\Backups\Data2
Q:\Backups\Data3
Данные пункты обязательны для работы ROBOCOPY.
Команда PAUSE в конце списка команд не позволит командной строке закрыться после завершения процесса копирования. Так вы сможете спокойно просмотреть результаты работы программы.
Теперь, дважды кликнув по созданному .BAT файлу, запустится командная строка и ROBOCOPY выполнит поставленные задачи.
Чтобы полностью задействовать всю мощь функционала ROBOCOPY, потребуется ввести некоторые дополнительные опции в командной строке самой программы.
В следующем примере я изменю существующие команды так, чтобы:
1) Были скопированы все подпапки в пределах указанной папки, даже если они пустые.
2) К существующему бэкапу, который мы только что сделали, были добавлены только новые или измененные файлы и папки (этот процесс займет меньше времени).
3) Не отображался прогрессбар — информация о состоянии операции не отображается, отсюда создаётся гораздо меньший по объёму лог-файл.
4) Информация, которая отображается в окне командной строки, была сохранена в отдельный лог-файл для дальнейшего его изучения.
Чтобы проделать всё вышеперечисленное нужно добавить к существующим командам ROBOCOPY некоторые опции:
Где:
/e = копировать все подпапки, даже если они пустые
/mir = зеркалирование (копирует только новые или измененные файлы)
/np = не показывать прогрессбар
/log: = создать лог-файл
Запись /log+: во второй и третьей строке моего .BAT файла гарантирует, что результаты второй и третьей операции будут записаны в журнал, созданный для первой команды. Таким образом будет создан только один лог-файл вместо трёх.
Лог-файл сохраняется в той же папке, где находится .BAT файл.
Внимание! Используйте опцию /MIR с особой осторожностью, так как с ней ROBOCOPY при определённых условиях может удалить файл и из источника и из папки для записи бэкапа.
Это обычно происходит, если файл/папка в директории с бэкапом был удалён. ROBOCOPY автоматически «синхронизирует» бэкап и исходную папку, тем самым удалив файл/папку из папки-источника. Чтобы избежать этой ситуации, никогда не удаляйте файлы/папки из директории с бэкапом. Сначала удалите контент из папки-источника, а затем заново выполните резервное копирование.
Если вы сомневаетесь в своих действиях, то лучше не используйте опцию /MIR.
С опциями, заданными выше, все действия ROBOCOPY записываются в лог-файл и на экран не выводятся. Чтобы информация о выполнении команды выводилась на экран и одновременно записывалась в лог-файл, нужно к каждой команде добавить опцию /tee.
Вот как выглядит типичный лог-файл ROBOCOPY. То же самое можно увидеть и в окне программы.
Так как одна из папок копируется в сетевое хранилище, то в процессе бэкапа могут возникнуть обрывы связи. Из-за этого могут потеряться некоторые критические файлы. Чтобы предотвратить это, к третьей строке нужно добавить опцию /z как показано под спойлером.
Эта опция позволяет повторить последнюю попытку копирования в случае неудачи. Программа будет пытаться скопировать файл каждые 30 секунд, пока у неё это не получится.
ROBOCOPY поддерживает многопоточное копирование (опция /mt). Можно выбрать число потоков в диапазоне от 1 до 128. По умолчанию используется 8 потоков.
Ну и наконец вы можете автоматизировать резервное копирование данных с помощью планировщика заданий Windows 7 (находится в Пуск -> Программы -> Стандартные -> Служебные). Просто создайте простую задачу и задайте определённое время, когда планировщик должен запустить созданный вами командный файл.