Теоретично використання /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
).
rsync
, але що робити, якщо у вас немає кінцевої косої риски в кінці вашої цільової папки? Як щодо спроби змінити скрипт на рівні командного рядка, а не використовувати графічний інтерфейс? Я знаю фактично, що інструмент командного рядка зробить все, що вам потрібно.