Teoretycznie używanie /DCOPY:Tpowinno rozwiązać wszystkie problemy.
Ale widziałem, że tak się dzieje i nie jestem pewien, czy nazwałbym to „błędem”, ale raczej konsekwencją sekwencji operacji (OK, błąd).
To polecenie powinno działać, aby skopiować wszystkie pliki z C:\Brushesdo D:\NEWBrushesi /DCOPY:Tpowinno spowodować skopiowanie znaczników czasu folderu źródłowego do folderu docelowego:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
Widziałem (przynajmniej w niektórych wersjach Robocopy), że polecenie się powiodło, ale znacznik czasu D:\NEWBrushesfolderu jest ustawiony na bieżącą datę i godzinę.
Wygląda więc na to, że /DCOPY:Tfunkcja nie działa dla kopiowanego folderu „podstawowego” (najwyższego).
Uważam, że działa, ale znacznik czasu folderu docelowego jest „przyspieszany” przez operacje, które są później w sekwencji operacji.
Wydaje mi się, że dzieje się to dla tego polecenia:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
jest coś takiego:
- Utwórz folder,
D:\NEWBrushesjeśli jeszcze nie istnieje
- Skopiuj znacznik czasu z
C:\BrushesdoD:\NEWBrushes
- Skopiuj pliki i podfoldery z
C:\BrushesdoD:\NEWBrushes
Wygląda na to, że krok 3, zmiana zawartości folderu D:\NEWBrushespowoduje zmianę znacznika czasu D:\NEWBrushes.
Dla mnie „obejściem” było uruchomienie robocopypolecenia skopiowania plików i folderów, a następnie ponowne uruchomienie (tego samego) robocopypolecenia.
Więc przy pierwszym uruchomieniu:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
wszystkie pliki i foldery zostaną skopiowane. Następnie uruchom go ponownie:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
(or)
robocopy "C:\Brushes" "D:\NEWBrushes" /DCOPY:T
Przy drugim robocopyuruchomieniu żadne pliki ani foldery D:\NEWBrushesnie zostaną zmodyfikowane, a /DCOPY:Topcja poinformuje robocopyo skopiowaniu znacznika czasu z C:\Brushesdo D:\NEWBrushes(chyba że istnieją foldery / pliki C:\Brushes, które zmieniły się od pierwszego uruchomienia robocopy).
rsync, ale co, jeśli nie masz końcowego ukośnika na końcu folderu docelowego? Co powiesz na próbę zmodyfikowania skryptu na poziomie wiersza poleceń zamiast korzystania z GUI? Wiem na pewno, że narzędzie wiersza polecenia zrobi to, czego potrzebujesz.