Теоретически, использование /DCOPY:T
должно решить все ваши проблемы.
Но я видел, как это произошло, и я не уверен, что назвал бы это "ошибкой", а скорее следствием последовательности операций (ОК, ошибка).
Эта команда должна работать для копирования всех файлов из C:\Brushes
в D:\NEWBrushes
, и /DCOPY:T
должен вызывать копирование временных меток исходной папки в целевую папку:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
Что я видел (по крайней мере, в некоторых версиях Robocopy), так это то, что команда выполнена успешно, но метка времени папки D:\NEWBrushes
установлена на текущую дату и время.
Таким образом, похоже, что /DCOPY:T
не работает для "базовой" (самой верхней) папки, которую вы копируете.
Я полагаю, что это работает, но что временная метка папки назначения "наступает" операциями, которые позже в последовательности операций.
То, что я считаю, происходит с этой командой:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
это что-то вроде этого:
- Создать папку
D:\NEWBrushes
если она еще не существует
- Скопируйте метку времени из
C:\Brushes
в D:\NEWBrushes
- Скопируйте файлы и подпапки из
C:\Brushes
в D:\NEWBrushes
Похоже, что на шаге 3 изменение содержимого папки D:\NEWBrushes
вызывает изменение временной метки D:\NEWBrushes
.
Для меня "обходной путь" заключался в том, чтобы запустить команду robocopy
для копирования файлов и папок, а затем запустить (ту же) команду robocopy
во второй раз.
Итак, при первом запуске:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
все файлы и папки будут скопированы. Затем запустите его снова:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
(or)
robocopy "C:\Brushes" "D:\NEWBrushes" /DCOPY:T
Во второй раз, когда запускается robocopy
, никакие файлы или папки в D:\NEWBrushes
не будут изменены, а параметр /DCOPY:T
скажет robocopy
скопировать метку времени из C:\Brushes
в D:\NEWBrushes
(если только нет папок / файлов). в C:\Brushes
, которые изменились с первого запуска robocopy
).