Polecenie 'robocopy' w Windows, czyli "Cudze chwalicie, swego nie znacie".


"robocopy" jest potężnym narzędziem o którym wie niewielu użytkowników, służącym do masowego kopiowania/przenoszenia/synchronizacji plików i katalogów.


Wpis został zainspirowany przez @koszotorobur który dokonał wpisu "jak w prostych 8 krokach zainstalować polecenie 'rsync' w systemie Windows" 


Polecenie 'robocopy' jest wbudowane w systemach Windows 10/11 więc nie trzeba niczego instalować.

Uruchamiamy command line: "windows+R", wpisujemy 'cmd' i enter.

Po wpisaniu "robocopy" otrzymamy bardzo podstawowe informacje o składni tego polecenia, czyli:


ROBOCOPY source destination


Banalne, prawda? Więc gdzie tutaj potęga tego narzędzia? Wystarczy wpisać 'robocopy /?" i otrzymamy spis kilkudziesięciu parametrów tego polecenia.

Na co pozwala to polecenie?

M.in. na:


  • kopiowanie podkatalogów - wszystkich, albo tylko niepustych, albo tylko do X poziomu zagłębienia

  • kopiowanie atrybutów, uprawnień, strumieni danych

  • przenoszenie plików i katalogów

  • tworzenie struktury katalogów

  • monitorowanie źródła (jeśli coś się zmnieni, to polecenie wykona się jeszcze raz)

  • harmonogram pracy polecenia

  • kopiowanie linków symbolicznych

  • kopiowanie w wielu wątkach jednocześnie

  • filtrowanie plików według wielu parametrów

  • mirror katalogu


Przykład z życia?

Tak wygląda to polecenie u mnie - robię w ten sposób mirror dysku sieciowego do katalogu lokalnego:


robocopy w: "e:\backup" /MIR /COPYALL /DCOPY:DAT /E /XD w:\@Recently-Snapshot /R:5 /W:5 /ndl /nfl /nc /ns /np


Czyli:

"kopiuj pliki z dysku W: do katalogu e:\backup

/MIR - mirror katalogu

/COPYALL - kopiuj wszystkie dodatkowe parametry: dane, atrybuty, czas, uprawnienia, dane właściciela, dane audytu)

/DCOPY:DAT - podobnie, ale dla katalogów (dane, atrybuty, czas)

/E - kopiuj podkatalogi, nawet te puste

/XD w:\@recently-snapshot - wyklucz pliki o takich nazwach z kopiowania - XD, czaicie? 

/R:5 - w razie błędu powtórz 5 razy próbę skopiowania

/W:5 - czekaj 5 sekund między próbami

/NDL - nie loguj nazw katalogów

/NFL - coś o hokeju  a serio, to nie loguj nazw plików

/NC - nie loguj klas plików

/NS - nie loguj wielkości plików

/NP - nie pokazuj procentów


Dużo tego 'nie loguj', ale im mniej na ekranie, tym szybciej się kopiuje, a ja tam mam prawie 2 miliony plików 


Polecam wszystkim chętnym na zapoznanie się z tym poleceniem.


Wrócę jeszcze na moment do unixowego polecenia 'rsync'. Te narzędzia świetnie się uzupełniają. rsync potrafi np. podpiąć się do innego komputera poprzez różne protokoły (czego robocopy nie umi), sam sposób synchronizacji też jest zupełnie inny niż w robocopy, ale znowu robocopy jest narzędziem stricte pod Windows i potrafi kopiować różne metadane plików, czego rsync nie potrafi.


ps: jest jeszcze drugie, podobne polecenie, ale o mniejszej potędze: 'xcopy'. Też warto podejrzeć co potrafi.


#technologia #windows #robocopy #komputery

Komentarze (28)

@koszotorobur bo rsync to mocarz w swojej kategorii Każdy używa tego, co mu jest potrzebne. Ja tam nie hejtuję linuxa, bo nie ma czegośtam, co ma Windows, bo znowu linux ma mnóstwo rzeczy, których mi brakuje w systemie MS

Jak chcę zrobić synchronizację czy kopię serwera mailowego tak, żeby go nie wyłączać, to używam rsynca. Jak robię kopię dysku sieciowego podpiętego do MSAD ze wszystkimi jego właściwościami, to używam robocopy albo innych narzędzi Windowsowych, bo rsync nie umi skopiować metadanych - co nie jest dziwne, bo to narzędzie z innego systemu

@LovelyPL nigdy nie słyszałem o robokopie, zawsze wszyscy używali xcopy trzeba będzie się pochwalić przed współpracownikami ( ಠ ͜ʖಠ)

@the_good_the_bad_the_ugly  człowiek się przyzwyczaja do pewnych rzeczy. Po prostu wzbraniam się przed konfiguracja wielu softów pod nowe środowisko.


Za to na 3 innych łapkach mam win 10/11

@the_good_the_bad_the_ugly To już zależy co i jak chcesz kopiować.

Ja używam i robocopy i takiego fajnego narzędzia (jest płatne, ale wersja free też istnieje, z ograniczeniami) - SyncBack.

https://www.2brightsparks.com/freeware/index.html


Osobiście w firmie używamy wersji Pro i mamy tam kilkaście zadań wrzuconych, typu - codziennie kopiuj pliki które zmieniły sie przez ostatnie 24 godziny. Przed kopiowaniem stwórz katalog o nazwie yyyy-mm-dd. Albo "sprawdzaj czy w katalogu X coś się zmieniło. Jesli tak, to przerzuć zmienione pliki w inne miejsce". itd.

@zboinek robocopy działa na poziomie plików, więc przewala całe pliki, ale jak dajesz opcje typu /MIR to oczywiście kopiuje tylko to, co się różni w źródle i w celu, a nie wszystko od nowa za każdym razem (no, chyba, że chcesz, to ci będzie kopiować zawsze wszystko)

Backup na Seagate zrobiony. Jutro przyjeżdża 1tb SSD, montaż i instalacja Steam OS 3.0 bo na tym da się grać i Gównosoft WX zostanie do gier linuksoodpornych

@Catharsis są parametry dotyczące atrybutów czy ACL, ale z moich testów (niezbyt licznych) i tego, co mówi google wynika, że rsync nie kopiuje poprawnie listy uprawnień czy atrybutów rozszerzonych. Podobnie ze strumieniami danych.

Ale to nie dziwi, bo jest to narzędzie linuxowe i nie ma w nim zaimplementowanych pewnych funkcji specyficznych wyłącznie dla Windows.

Możliwe, że są jakieś forki tego polecenia, które to potrafią, ale nie znam. I nie szukam, bo to, co potrzebuję robię narzędziami, które mam

Zaloguj się aby komentować