|
robocopy c:\откуда d:\куда ...[параметры]
|
Некоторые полезные и малопонятные параметры (ключи):
— исключить (из операций) файлы, которые (в папке откуда) старее («older»):
— если старее окажется файл в папке куда, то он будет в ней перезаписан — все как обычно
— если файл в папке куда вдруг окажется новее, то он останется нетронутым
Т.е. если в момент сравнения файла источника (откуда) и файла назначения (куда) окажется, что в папке источника (откуда) более старый файл — этот файл просто пропускается и ничего с ним не происходит вообще.
ВАЖНО! Файл будет перезаписан (в первом случае), или не затронут (во втором случае) независимо того какой у него размер или атрибуты. Кроме того, если у обрабатываемых файлов есть посторонние внешние жесткие ссылки, то обрабатываемые файлы могут быть неверно прочитаны Robocopy.
— исключить (из операций) файлы, которые (в папке откуда) новее («newer»):
— если новее вдруг окажется файл в папке куда, то он будет в ней перезаписан
— если файл в папке куда окажется старее, то он останется нетронутым
Т.е. если в момент сравнения файла источника (откуда) и файла назначения (куда) окажется, что в папке источника (откуда) более новый файл — этот файл просто пропускается и ничего с ним не происходит вообще.
ВАЖНО! Файл будет перезаписан (в первом случае), или не затронут (во втором случае) независимо того какой у него размер или атрибуты.
— исключить (из операций) измененные («changed») файлы:
— только одинаковое время (!) и разный размер означают, что файлы «changed»
— если файлы имеют одинаковое время и разный размер — файл в папке куда останется нетронутым (будет исключен из обработки)
— если файлы имеют разное время то даже разный размер не будет иметь значения, — файл в папке куда НЕ будет считаться «changed» и НЕ будет исключен из обработки (а будет видимо перезаписан).
— атрибуты файлов для этого ключа вообще не важны
Т.е. если в момент сравнения файла источника (откуда) и файла назначения (куда) окажется, что у файлов одинаковые метки времени, то только тогда сравнивается размер файлов, и если размер отличается, то только тогда файлы считаются «changed» и будут исключены из обработки (проигнорированы). Если метки времени разные, то независимо от их разного размера — файлы НЕ попадут в класс «changed» (и НЕ будут обрабатываться этим ключом), — т.е. НЕ будут исключены (НЕ будут проигнорированы программой), а будут перезаписаны!
ВАЖНО! Если одноименные файлы в папках откуда и куда имеют одинаковые метки времени, одинаковый размер (!), но разное содержимое (а такое тоже бывает), то Robocopy этого к сожалению не увидит — в этом случае его будет интересовать только размер файлов.
Так же надо учитывать что посторонние жесткие ссылки на обрабатываемые файлы могут сильно повлиять на достоверность результата, поскольку информация о новом размере файла может отсутствовать (даже если размер был изменен.
— исключить (из операций) «дополнительные» («extra») файлы и папки, — которых НЕТ в папке откуда, но они есть в папке куда.
— исключить (из операций) «одинокие» («lonely») файлы и папки, — которые ЕСТЬ в папке откуда, но отсутствуют в папке куда.
— включить одинаковые («same») файлы, — которые полностью идентичны (по времени, размеру и атрибутам)
— включить «твикнутые» («tweaked») файлы, — которые имеют одинаковый размер и метки времени, но разные атрибуты.
Полезная таблица для понимания классификации файлов в Robocopy:
|
File Exists In Exists In Source/Dest Source/Dest Source/Dest
Class Source Destination File Times File Sizes Attributes
=========== =========== ================ =============== ============= ============
Lonely Yes No n/a n/a n/a
Tweaked Yes Yes Equal Equal Different
Same Yes Yes Equal Equal Equal
Changed Yes Yes Equal Different n/a
Newer Yes Yes Source > Dest n/a n/a
Older Yes Yes Source < Dest n/a n/a
Extra No Yes n/a n/a n/a
Mismatched Yes (file) Yes (directory) n/a n/a n/a
|