21 примеров Robocopy с изображениями экрана
Ищете список примеров robocopy и полезных команд? Тогда не ищите дальше.
Robocopy имеет множество опций командной строки, и может быть сложно понять, какие команды использовать. В этом руководстве я покажу вам лучшие команды robocopy и примеры.
Давайте начнём.
1. Протестируйте копирование файла без каких-либо реальных изменений
Вы можете протестировать копирование файла с помощью команды /l. Это отличный способ протестировать команду, не внося никаких реальных изменений; она покажет вам, что было бы сделано.
Вот пример.
robocopy c:\share c:\it\dst /l
Вы можете увидеть ниже, что эта команда скопировала бы одну директорию.
Я проведу еще один тест и включу опцию /e.
robocopy c:\share c:\it\dst /e /lНа этот раз тест показал, что он скопирует кучу файлов и каталогов.
/l - это отличная команда, которая помогает понять, что бы она сделала, не внося никаких реальных изменений.
2. Скопировать содержимое, исключая пустые подпапки
В этом примере я собираюсь скопировать все файлы и папки с c:\share в папку c:\it\dst на том же компьютере. Это исключит любые пустые подпапки.
robocopy c:\share c:\it\dst /sВот снимок экрана с моего компьютера.
Вот скриншот, показывающий сравнение между исходной и целевой папками.
Почему robocopy скопировала только папку «Windows Defender»? Потому что другие папки пустые, команда /s исключит подпапки, которые пустые.
3. Скопировать содержимое, включая пустые подкаталоги
В этом примере я собираюсь скопировать все файлы и папки с c:\share в папку c:\it\dst на том же компьютере. На этот раз я использую команду /e, чтобы включить пустые подкаталоги.
robocopy c:\share c:\it\dst /eВот скриншот команды с моего компьютера.
Вот сравнение папок. На этот раз папка назначения выглядит точно так же, как и исходная папка.
4. Копировать содержимое с безопасностью (разрешения ACL)
Если вы изменили права доступа к файлам и папкам и хотите сохранить эти права, вам необходимо использовать опцию /copy:DATS. Это не копирует информацию о владельце, смотрите пример 4, чтобы включить владельца.
robocopy c:\share c:\it\dst /e /copy:DATSВот скриншот, сравнивающий права доступа к одной из папок. На источнике я изменил права доступа к папке бухгалтерии. Вы можете увидеть, что эти права были скопированы в папку назначения.
5. Копировать файлы с безопасностью, включая владельца
Чтобы включить владельца файла или папки, используйте команду /copy:DATSO.
robocopy c:\share c:\it\dst /e /copy:DATSOВот снимок экрана, на котором показано, что информация о владельце была скопирована в папку назначения. Без этой команды папка унаследовала бы информацию о владельце.
6. Скопировать всю информацию о файле
Чтобы скопировать все свойства файла, используйте /copyall, это эквивалентно /copy:DATSOU. Я предпочитаю использовать /copyall вместо перечисления каждого типа свойства.
robocopy c:\share c:\it\dst /e /copyallЭто скопирует следующие свойства файла.
- D - Данные
- А - Атрибуты
- T - временные метки
- S - список управления доступом NTFS (ACL)
- O - Информация о владельце
- U - Аудит информации
7. Отразить исходный и целевой каталоги
Эта команда отразит исходный и целевой каталоги. Любые изменения, которые вы внесете в исходный каталог, будут отражены в целевом. Например, если вы добавите или удалите папку в исходном каталоге, то же самое произойдет и в целевом.
robocopy c:\source c:\it\dst /e /mirНиже представлен скриншот до того, как я выполнил команду /mir. Вы можете увидеть, что источник и назначение различны.
После выполнения команды /mir, назначение будет тем же.
Вывод команды /mir покажет вам, какие изменения есть между источником и местом назначения.
Выше говорится, что в каталоге назначения была лишняя директория «Маркетинг», поэтому она была удалена. Затем отсутствовали две директории «новая папка (2)» и «тест», поэтому они были добавлены.
8. Зеркальный каталог со всеми свойствами файлов
Предыдущий пример не отражает свойства файла каталога источника (ACL, владелец, временные метки и т. д.). Чтобы отразить и включить свойства файла, используйте эту команду.
robocopy c:\source c:\it\dst /e /mir /copyallНапример, я удалю пользователя "Марка" из списка управления доступом на папке "source\accounting". Теперь источник и назначение разные.
После выполнения команды /mir /copyall, “mark” будет удален из папки it\dst\accounting.
9. Очистить файлы и папки в целевой директории
Если вы удалили несколько файлов/папок из источника и хотите удалить их из конечной папки, используйте параметр /purge.
robocopy c:\source c:\it\dst /e /purgeВывод покажет вам папки, которые были удалены.
10. Копирование файлов по сети
Копирование файлов по сети такое же, как и локальное копирование. Есть несколько дополнительных команд, которые могут помочь с передачей файлов по сети, я рассмотрю их далее. Лучше всего использовать UNC-адрес вместо подключенного диска при копировании на удаленное устройство.
robocopy c:\source \\srv-vm2\share /z /eВышеупомянутая команда копирует файлы с моего локального компьютера на другой сервер. Параметр /z копирует файлы в режиме возобновления. Если копирование будет прервано, robocopy может продолжить с того места, где остановилось.
11. Копирование файлов по сети с свойствами файлов
Если вы хотите скопировать ACL и другие свойства файла, используйте /copyall. Чтобы скопировать только ACL, вы можете использовать /copy:DATS.
robocopy c:\source \\srv-vm2\share /z /e /copyall12. Сохранить вывод в файл журнала
Чтобы записать вывод robocopy в файл журнала, используйте /log:logfile. Это будет перезаписывать файл журнала каждый раз, когда вы выполняете команду.
robocopy c:\source \\srv-vm2\share /z /e /log:c:\it\logs.txtВот скриншот журнального файла. При выполнении больших заданий или миграций вы определенно захотите включить журнальный файл.
13. Добавить в существующий файл журнала
Используйте команду /log+:logfile для добавления информации в существующий файл журнала. Это будет добавляться в файл журнала каждый раз, когда вы запускаете robocopy.
robocopy c:\source \\srv-vm2\share /z /e /log+:c:\it\logs.txt14. Многоядерное копирование файлов (Увеличение скорости копирования)
По умолчанию robocopy будет использовать 8 потоков. Чтобы увеличить количество потоков, используйте команду /mt. Приведенный ниже пример будет использовать 32 потока.
robocopy c:\source \\srv-vm2\share /z /e /mt:32Вам нужно будет протестировать эту настройку и выяснить, какое количество потоков работает лучше всего в вашей сети и на вашем компьютере.
15. Включите подробное логирование
Подробный журнал будет показывать пропущенные файлы. Если вы копируете критически важные файлы или мигрируете на новый сервер, я бы рекомендовал включить подробный журнал в вывод или, что еще лучше, включить его в файл журнала.
robocopy c:\source \\srv-vm2\share /vВключите подробное логирование с файлом журнала.
robocopy c:\source \\srv-vm2\share /v /log:c:\it\logs.txt16. Укажите попытки при неудачных копированиях
/r команда задает количество попыток при неудачных копированиях. Это рекомендуется для копирования больших файлов и при копировании по сети. Копирование файлов по сети может быть прервано, /r автоматически попытается снова скопировать файл в случае неудачи.
robocopy C:\source C:\it\dst /LOG+:c:\it\robolog.txt /MIR /copyall /z /w:1 /r:2 17. Копировать файлы по типу файла
Если вам нужно скопировать определенные типы файлов, используйте команду ниже. В этом примере я собираюсь скопировать только файлы типа txt.
robocopy C:\source \\srv-vm2\share *.txtНиже вы можете увидеть, что robocopy скопировал только файл file1.txt в целевую папку.
Если бы я хотел скопировать все изображения формата jpg, я бы использовал *.jpg.
18. Копировать файлы, которые начинаются с
Вы можете копировать файлы, которые начинаются с определенного символа или слова. Например, я скопирую все файлы, которые начинаются со слова "file".
robocopy C:\source \\srv-vm2\share file*Вы можете видеть ниже, что команда скопировала только два файла, содержащих “file” в названии, все остальное было пропущено.
19. Исключить каталог
Чтобы исключить каталог, используйте опцию /XD.
robocopy C:\source \\srv-vm2\share /XD /e "c:\source\accounting"В этом примере я собираюсь скопировать всё, кроме «папки бухгалтерии». Вы можете увидеть ниже, что назначение не включает папку «бухгалтерия».
20. Копировать файлы, которые старше 14 дней
Это скопирует файлы, у которых отметка времени как минимум 14 дней.
ROBOCOPY C:\source \\srv-vm2\share /minage:1421. Копировать файлы с определённым размером
Это скопирует файлы, которые не исключают 2000 байт.
robocopy C:\source \\srv-vm2\share /S /MAX:2000Вы также можете использовать /min, чтобы указать минимальный размер файла.
Это мой список. Чтобы узнать больше о множестве команд robocopy, ознакомьтесь с документацией по синтаксису Microsoft.
У вас есть примеры robocopy, которыми вы могли бы поделиться? Дайте знать в комментариях ниже.


















