Это кажется странным поведением, так как можно подумать, что вы пытаетесь сделать что-то старше 1 января 2019 года и использовать переключатель /MIR
, или, более конкретно, использовать переключатель /PURGE /E
, чтобы удалитьдополнительные каталоги.
Причина, по которой это не работает, заключается в том, что переключатель /MINAGE
влияет только на файлы, выбранные как скопированные , даже когда команда /MIR
работает какожидается.
Допустим, у нас есть 2 файла: 1 старше 1 января 2019 года и один более новый.Когда мы запускаем стандартную команду \MIR
:
Robocopy.exe C:\Source C:\Destination /MIR
Оба файла копируются должным образом.
2 files Copied
Если мы добавляем дополнительный файл к месту назначения и повторно запускаем:
Robocopy.exe C:\Source C:\Destination /MIR
Мы получаем, как и ожидалось, дополнительный файл удаляется:
2 files Skipped
1 files Extras
Когда мы затем добавляем /MINAGE
и запускаем:
Robocopy.exe C:\Source C:\Destination /MIR /MAXAGE:20190101
Мы увидим:
2 files Skipped
Чтобы лучше проиллюстрировать, что происходит и почему он «пропустил» файлы, давайте добавим еще один параметр, «Включить пропущенные» \IS
:
Robocopy.exe C:\Source C:\Destination /MIR /IS /MINAGE:20190101
Мы получаем:
1 files Copied
1 files Skipped
Это означает, что \MINAGE
отфильтровывает то, что мы хотели скопировать.Если мы очистим каталог и снова запустим его, мы сможем лучше увидеть, что произошло:
Remove-Item C:\Destination -Force
Robocopy.exe C:\Source C:\Destination /MIR /MINAGE:20190101
Мы получим:
1 files Copied
1 files Skipped
Он скопирован поверх Старше файл, а не новее файл.Это означает, что когда он перебирал файлы в источнике, он использовал параметр /MINAGE
, чтобы выяснить только какие файлы мне нужно скопировать , а не какие файлы мне нужны Удалить .
Причина такого поведения заключается в том, что /MINAGE
предназначен для очень больших каталогов с медленными сетевыми связями или небольших конечных компьютеров, где мы заинтересованы только в копировании более новых файлов, ине обязательно все файлы.
Чтобы выделить копирование поверх удаления, если мы добавим 2 дополнительных файла, один более старый и один более новый, и повторно запустим /MINAGE
и включим те же/IS
переключатель для иллюстрации:
Robocopy.exe C:\Source C:\Destination /MIR /IS /MINAGE:20190101
Мы получаем:
1 files Copied
1 files Skipped
2 files Extras
Это подчеркивает, что /MIR
предназначен для ... хорошо ... Зеркальное отображение .Остальные параметры существуют только для того, чтобы указать, что Копировать .
- Он увидел
/MINAGE
и скопировал тот же файл (/IS
), который был новее. - Он увидел
/MINAGE
и пропустил старый файл из копии. - Он увидел
/MIR
и удалил дополнительные файлы, которых там не должно быть Независимо от возраста дополнительных файлов .
простое решение - просто не копировать все для начала.Начните с пустой директории и скопируйте только файлы старше 1 января 2019 года:
Remove-Item C:\Destination -Force
Robocopy.exe C:\Source C:\Destination /E /MINAGE:20190101