Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Цитата kero:
А напишите какой нибудь пример ROBOCOPY с перемещением папки "АА1" и перезаписью ею существующей папки "ВВ1" (все они конечно с файлами) одной строкой. »





Примеры простого использования утилиты Robocopy.




Пример 1.



Код: Выделить весь код
ROBOCOPY AA1 BB1 /Z /TIMFIX /DCOPY:T /MIR /SL /XJ /R:4 /W:15

Параметры:

/Z - копирование с возобновлением (старый файл будет заменятся новым, если у него другое содержимое и другая дата изменения)

/TIMFIX - исправление атрибутов времени для файлов (в дополнение к /Z переписывается и дата создания для одинаковых файлов)

/DCOPY:T - копирование меток времени для папок (дата создания, дата изменения)

/MIR - зеркальное копирование (копируются все вложенные папки, включая пустые, и удаляются все файлы и папки назначения, которых не существует в источнике)

/SL - копирование самих символических ссылок вместо копирования целевого объекта этих ссылок (на всякий случай, если таковые попадутся, чтобы не скопировать лишние гигабайты)

/XJ - исключение из копирования точек соединения (также на всякиЙ случай - от них потом сложно избавлятся)

/R:n - число повторных попыток для неудавшихся копий (по умолчанию - 1 миллион)

/W:n - время ожидания между повторными попытками (по умолчанию - 30 секунд)


Значения для параметров /R и /W (/R:4 /W:15) - мои личные, можно менять, но в пределах разумного. Объясняю. Если не выставлять эти параметры совсем, то по умолчанию 30 секунд x 1 000 000 = 30 000 000 секунд; натыкается процесс копирования на "файл, занятый другим процессом" и висит, пытаясь безрезультатно его скопировать в течении почти года (30 000 000 секунд = 347 суток!). С другой стороны, если выставить /R:0 /W:0, то если случится какой-нибудь системный или аппаратный сбой, он может вызвать ошибку копирования; например, захотел прилечь на диване вместе с ноутбуком, стал переносить его со стола, - отвалился внешний жёсткий диск, с которого или на который копируется. Большинство программ в таких случаях прекращают работу или виснут, а Robocopy с парамерами ожидания и повтора подождёт, пока вставится и запустится диск, и продолжит работу, исправив ошибку (минуты обычно хватает - 15 секунд x 4).




Пример 2.



Код: Выделить весь код
ROBOCOPY AA1 BB1 /ZB /TIMFIX /DCOPY:T /MIR /SL /XJ /R:4 /W:15

Отличается от предыдущего одной буквой - параметр /ZB вместо /Z, но отличие существенное. С параметром /ZB также идёт копирование с возобновлением, но если доступ запрещен, используется режим архивации. Например, завёлся в папке System Volume Information вирус (в Windows XP это часто), антивирус его видит, а вытащить не может, - атрибуты безопасноти папки не позволяют, оценить угрозу надо, а "взламывать" папку (добавлять, менять разрешения доступа) в случае ложной угрозы как то не с руки. Используя команду с данными параметрами (можно, конечно, без /SL /XJ) делаем копию этой папки, но без атрибутов безопасности, и вирус можно отправлять на VirusTotal.




Пример 3.



Команда с такими параметрами не будет удалять файлы и папки, которых нет в источнике, а только добавлять новые и переписывать изменившиеся, то есть будет выполнять функцию коллектора.


Код: Выделить весь код
ROBOCOPY AA1 BB1 /E /ZB /DCOPY:T /TIMFIX /SL /XJ /R:4 /W:15



Пример 4.



С добавлением параметра /MOV к остальным параметрам файлы будут перемещаться (копироваться и удаляться из источника), а папки оставаться на месте; если же добавить параметр /MOVE, то файлы будут перемещаться вместе с папками.


Код: Выделить весь код
ROBOCOPY AA1 BB1 /ZB /DCOPY:T /TIMFIX /MIR /SL /XJ /MOV /R:4 /W:15

ROBOCOPY AA1 BB1 /ZB /DCOPY:T /TIMFIX /MIR /SL /XJ /MOVE /R:4 /W:15



Пример 5.



А с этими параметрами на выходе будет полная зеркальная копия (репликация) со всеми атрибутами, включая атрибуты безопасности (разрешения, владелец, аудит), но "файлы, занятые другим процессом" будут скопированы с нулевой длиной, то есть окажутся пустыми.


Код: Выделить весь код
ROBOCOPY AA1 BB1 /ZB /COPYALL /DCOPY:T /SECFIX /TIMFIX /MIR /SL /R:4 /W:15



***

Если описал десять процентов от возможностей утилиты Robocopy, то хорошо. А она может всё (или почти всё). Может копировать только выбранные атрибуты, не копируя сам файл, может исключать заданные файлы и папки (в т. ч. по маске) из копирования, может вести журнал...
Думаю, что понятно, что вместо папок "AA1" и "BB1" надо вписывать их полные имена (в случае пробелов - в кавычках), если, конечно, BAT-файл не находится в одной директории с обеими папками. Параметры можно расставлять в любом порядке вслед за папками.

Последний раз редактировалось Georgio, 19-04-2013 в 08:37. Причина: Исправление опечатки

Это сообщение посчитали полезным следующие участники:

Отправлено: 08:12, 19-04-2013 | #14