Поиск по сайту:

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 /copyall

12. Сохранить вывод в файл журнала

Чтобы записать вывод 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.txt

14. Многоядерное копирование файлов (Увеличение скорости копирования)

По умолчанию 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.txt

16. Укажите попытки при неудачных копированиях

/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:14

21. Копировать файлы с определённым размером

Это скопирует файлы, которые не исключают 2000 байт.

robocopy C:\source \\srv-vm2\share /S /MAX:2000

Вы также можете использовать /min, чтобы указать минимальный размер файла.

Это мой список. Чтобы узнать больше о множестве команд robocopy, ознакомьтесь с документацией по синтаксису Microsoft.

У вас есть примеры robocopy, которыми вы могли бы поделиться? Дайте знать в комментариях ниже.