Если вы хотите сначала скопировать новые (последние) файлы, вы можете использовать параметры командной строки Robocopy /MAXAGE:n
и /MINAGE:n
.
Вам придется запускать Robocopy 2 или более раз (в зависимости от того, насколько вы хотите контролировать порядок копирования файлов по "возрасту" файлов).
Вот информация о параметрах командной строки /MAXAGE:n
и /MINAGE:n
:
/MAXAGE:n :: MAXimum file AGE - exclude files older than n days/date.
/MINAGE:n :: MINimum file AGE - exclude files newer than n days/date.
(If n < 1900 then n = n days, else n = YYYYMMDD date).
Например, в простейшем случае вы можете сначала скопировать файлы AT-MOST 1-дневного возраста, а затем, когда это будет сделано, скопировать все файлы AT-LEAST 1-дневного возраста. Вот 2 командной строки Robocopy для этого (первого) примера:
First run of Robocopy:
robocopy "C:\source\path" "C:\dest\path" /S /COPY:DAT /DCOPY:T /MAXAGE:1
Second run of Robocopy:
robocopy "C:\source\path" "C:\dest\path" /S /COPY:DAT /DCOPY:T /MINAGE:1
Если вы хотите больше контроля, чем это, вы можете объединить 2 варианта. Например:
- Сначала скопируйте все файлы, которые AT-MOST, 1 день
- Затем скопируйте файлы AT-LEAST 1 дня и AT-MOST 2 дня
- Затем скопируйте файлы AT-LEAST 2 дня и AT-MOST 3 дня
- Затем скопируйте файлы AT-LEAST 3 дней и AT-MOST 5 дней
- Затем скопируйте файлы по крайней мере 5 дней назад (все оставшиеся файлы)
Вот командные строки Robocopy для этого (второго) примера:
robocopy "C:\source\path" "C:\dest\path" /S /COPY:DAT /DCOPY:T /MAXAGE:1
robocopy "C:\source\path" "C:\dest\path" /S /COPY:DAT /DCOPY:T /MAXAGE:2 /MINAGE:1
robocopy "C:\source\path" "C:\dest\path" /S /COPY:DAT /DCOPY:T /MAXAGE:3 /MINAGE:2
robocopy "C:\source\path" "C:\dest\path" /S /COPY:DAT /DCOPY:T /MAXAGE:5 /MINAGE:3
robocopy "C:\source\path" "C:\dest\path" /S /COPY:DAT /DCOPY:T /MINAGE:5
Если вы хотите увидеть порядок, который Robocopy будет использовать для копирования файлов, вы можете использовать параметр /L
:
robocopy "C:\source\path" "C:\dest\path" /S /COPY:DAT /DCOPY:T /MAXAGE:1 /L
С параметром /L
Robocopy будет просто перечислять файлы, которые "будут" скопированы, но фактически не будет копировать какие-либо файлы.