14 июля 2019

Интересные ключи Robocopy

Некоторые полезные и малопонятные параметры (ключи):


 — исключить (из операций) файлы, которые (в папке откудастарее («older»):

— если старее окажется файл в папке куда, то он будет в ней перезаписан — все как обычно

— если файл в папке куда вдруг окажется новее, то он останется нетронутым

Т.е. если в момент сравнения файла источника (откуда) и файла назначения (куда) окажется, что в папке источника (откуда) более старый файл — этот файл просто пропускается и ничего с ним не происходит вообще.

ВАЖНО! Файл будет перезаписан (в первом случае), или не затронут (во втором случае) независимо того какой у него размер или атрибуты. Кроме того, если у обрабатываемых файлов есть посторонние внешние жесткие ссылки, то обрабатываемые файлы могут быть неверно прочитаны Robocopy.


 — исключить (из операций) файлы, которые (в папке откудановее («newer»):

— если новее вдруг окажется файл в папке куда, то он будет в ней перезаписан

— если файл в папке куда окажется старее, то он останется нетронутым

Т.е. если в момент сравнения файла источника (откуда) и файла назначения (куда) окажется, что в папке источника (откуда) более новый файл — этот файл просто пропускается и ничего с ним не происходит вообще.

ВАЖНО! Файл будет перезаписан (в первом случае), или не затронут (во втором случае) независимо того какой у него размер или атрибуты.


 — исключить (из операций) измененные («changed») файлы:

— только одинаковое время (!) и разный размер означают, что файлы «changed»

— если файлы имеют одинаковое время и разный размер — файл в папке куда останется нетронутым (будет исключен из обработки)

— если файлы имеют разное время то даже разный размер не будет иметь значения, — файл в папке куда НЕ будет считаться «changed» и НЕ будет исключен из обработки (а будет видимо перезаписан).

— атрибуты файлов для этого ключа вообще не важны

Т.е. если в момент сравнения файла источника (откуда) и файла назначения (куда) окажется, что у файлов одинаковые метки времени, то только тогда сравнивается размер файлов, и если размер отличается, то только тогда файлы считаются «changed» и будут исключены из обработки (проигнорированы). Если метки времени разные, то независимо от их разного размера — файлы НЕ попадут в класс «changed» (и НЕ будут обрабатываться этим ключом), — т.е. НЕ будут исключены (НЕ будут проигнорированы программой), а будут перезаписаны!

ВАЖНО! Если одноименные файлы в папках откуда и куда имеют одинаковые метки времени, одинаковый размер (!), но разное содержимое (а такое тоже бывает), то Robocopy этого к сожалению не увидит — в этом случае его будет интересовать только размер файлов.

Так же надо учитывать что посторонние жесткие ссылки на обрабатываемые файлы могут сильно повлиять на достоверность результата, поскольку информация о новом размере файла может отсутствовать (даже если размер был изменен.


 — исключить (из операций) «дополнительные» («extra») файлы и папки, — которых НЕТ в папке откуда, но они есть в папке куда.


 — исключить (из операций) «одинокие» («lonely») файлы и папки, — которые ЕСТЬ в папке откуда, но отсутствуют в папке куда.


 — включить одинаковые («same») файлы, — которые полностью идентичны (по времени, размеру и атрибутам)


 — включить «твикнутые» («tweaked») файлы, — которые имеют одинаковый размер и метки времени, но разные атрибуты.


Полезная таблица для понимания классификации файлов в Robocopy:


Опубликовано 14.07.2019 от evgeniyalf в категории "Windows