Narzędzie wiersza polecenia Robocopy (dostarczane z większością wersji systemu Windows)
Na moim komputerze z systemem Windows 10 znajduje się onC:\Windows\System32
Z Wikipedii można go używać z następującym zestawem opcji, aby zachować znaczniki czasu plików i katalogów, a także inne atrybuty:
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPYALL /E /R:0
/DCOPY:T
zachowaj oryginalne znaczniki czasu katalogów (wymaga wersji XP026 lub nowszej)
/E
: Kopiuj katalogi rekurencyjnie, w tym puste katalogi
/R:0
: nie ponawiaj prób zablokowanych plików (domyślna liczba ponownych prób nieudanych kopii wynosi 1 milion),
/COPYALL
: Skopiuj wszystkie informacje o pliku
(równoważne z /COPY:DATSOU
, gdzie
D
= Dane,
A
= Atrybuty,
T
= Znaczniki czasu pliku ,
S
= Bezpieczeństwo = listy ACL NTFS,
O
= Informacje o właścicielu,
U
= Informacje kontrolne),
Jeśli chcesz zachować tylko sygnatury czasowe daty i katalogu, ale nie chcesz kopiować pustych podkatalogów i nie chcesz zachowywać innych atrybutów, możesz użyć:
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPY:T /S
gdzie /S
kopiuje niepuste podkatalogi
Aby zobaczyć pełną składnię, wpisz robocopy /?
w wierszu polecenia lub spójrz na następujące posty na blogu: https://ss64.com/nt/robocopy.html i
https://techjourney.net/robocopy-syntax-command-line -włącza-i-przykłady /
Przykład polecenia, które ostatnio uruchomiłem:
Robocopy D:\ C:\D_backup /DCOPY:T /COPYALL /E /R:0 /ZB /ETA /TEE /V /FP /XD D:\$RECYCLE.BIN /XD "D:\System Volume Information" /LOG:C:\D_backup_robocopy.LOG /MIR
Zauważ, że wykluczenie 2 podkatalogów wymaga /XD
dwukrotnego użycia flagi. Ponadto w drugim wykluczeniu katalogu używane są cudzysłowy, ponieważ w nazwie katalogu znajdują się spacje.
Na koniec możesz dodać /L
flagę, aby przetestować polecenie przed wykonaniem go naprawdę. W ten sposób możesz sprawdzić, czy nie kopiuje (ani nie usuwa) katalogów / plików, których nie chcesz, i że w poleceniu nie ma błędów.
Edycja: gotcha podczas kopiowania z katalogu głównego (zwanego też dyskiem) do folderu (katalogu innego niż root)
Po uruchomieniu powyższej przykładowej komendy katalog nie był widoczny! (Choć show hidden files
i show system files
były sprawdzane w systemie Windows 10!) Następujące polecenie jako za https://serverfault.com/a/455029/399723 ustaloną w ten sposób:
attrib -h -s C:\D_backup
Alternatywnie, dodanie opcji /A-:SH
„usuwa ukryty atrybut z plików systemowych”, może w ten sposób zapobiec ukryciu katalogu w pierwszej kolejności, zgodnie z https://serverfault.com/a/565804/399723 . Zobacz także https://ss64.com/nt/robocopy.html .
Ta dyskusja rzuca więcej światła na tę opcję jako rozwiązanie.
Robocopy D:\ C:\D_backup /A-:SH /DCOPY:T /COPYALL /E /R:0 /ZB /ETA /TEE /V /FP /XD D:\$RECYCLE.BIN /XD "D:\System Volume Information" /LOG:C:\D_backup_robocopy.LOG /MIR
Inne oprogramowanie:
Alternatywnie możesz pobrać wersję GUI robocopy, jeśli nie chcesz używać wiersza poleceń.
Innym narzędziem systemu Windows jest XCopy , chociaż jest on zawarty w systemie Windows 10, ale jest przestarzały. Zobacz link do gotchas.
Strona Wikipedii dla RoboCopy (link na górze tego postu) zawiera listę innych programów, których można użyć.