PC/WindowsPoradniki

Używamy polecenia robocopy do wykonania backupu danych.

Z pewnością każdy z nas potrzebował stworzyć szybką kopię zapasową naszych plików. Dzisiaj pokaże wam niezwykle prosty patent, na wykonanie kopii plików za pomocą polecenia robocopy.

Osobiście korzystam z tego polecenia od jakiegoś czasu i nigdy mnie nie zawiodło. Składnia robocopy jest dość banalna załóżmy, że chcemy wykonać backup zawartości folderu:

D:\Dokumenty

Do lokalizacji:

F:\Backup\Dokumenty

Podstawowa składnia polecenia wygląda zatem następująco:

robocopy "D:\Dokumenty" "F:\Backup\Dokumenty"

Jednak na niewiele się nam ona zda gdyż szybko okaże się, że w ten sposób kopiujemy jedynie pliki we wskazanym przez nas folderze, wszystkie podfoldery są pomijane. Aby uwzględnić foldery możemy użyć parametru /S a jeszcze lepiej /E który skopiuje również puste katalogi:

robocopy "D:\Dokumenty" "F:\Backup\Dokumenty" /E

Dam sobie rękę uciąć, że często coś zmieniacie w strukturze swoich dokumentów np. segregujecie swoje zdjęcia czy też muzykę przenosząc je pomiędzy folderami. Wypadałoby nakłonić robocopy, aby uwzględniał te zmiany i usuwał nieistniejące już foldery/pliki z naszej kopi zapasowej prawda ? Zatem zamiast parametru /E wykorzystamy parametr /MIR

robocopy "D:\Dokumenty" "F:\Backup\Dokumenty" /MIR

Teraz jeżeli korzystacie z linków symbolicznych o których już pisałem, i z jakiegoś powodu chcecie je pominąć w trakcie tworzenia kopii musicie do polecenia dodać parametr /XJD a jeżeli chcecie pominąć jeszcze pliki systemowe użyjcie parametru /XA:SH zatem nasza składnia zaczyna wyglądać następująco:

robocopy "D:\Dokumenty" "F:\Backup\Dokumenty" /MIR /XJD /XA:SH

Ale to jeszcze nie wszystko.  Jednym z większych “bajerów” jakie posiada robocopy to jego reakcja na próbę skopiowania pliku, który aktualnie jest w użyciu. Standardowo natrafiając na taki plik wyświetla nam się taki komunikat:

scr 7033953Czyli bohater naszego artykułu poczeka sobie 30 sekund i ponowi próbę. Jeżeli nie uda mu się skopiować pliku po milionie prób (to nie jest żart…) plik zostanie pominięty. Musimy zatem nakłonić robocopy, aby po pierwsze zmniejszył czas pomiędzy próbami kopiowania parametrem /w:x oraz co jest bardziej oczywiste liczbę prób skopiowania pliku /r:x gdzie pod x podajemy czas w sekundach.

robocopy "D:\Dokumenty" "F:\Backup\Dokumenty" /MIR /XJD /XA:SH /R:5 /W:15

W moim przypadku skrypt będzie czekał 15 sekund a po piątej nieudanej próbie po prostu go pominie.

Mam nadzieję, że do tego czasu jeszcze niczego nie zagmatwałem, pozostał nam jeszcze jeden parametr który warto znać. Standardowo robocopy zajmuje się jednym plikiem jednocześnie co przy listowaniu katalogów potrafi mu zająć za dużo naszego czasu. Parametr /MT:x określa iloma operacjami robocopy zajmie się jednocześnie. W moim przypadku wystarcza mi 15 wątków zatem dodajemy kolejny parametr do naszego polecenia:

robocopy "D:\Dokumenty" "F:\Backup\Dokumenty" /MIR /XJD /XA:SH /R:5 /W:15 /MT:15

Dzięki czemu sprawimy, że cała operacja zajmie znacznie mniej czasu oczywiście tylko w przypadku, jeżeli zrobiliśmy już co najmniej jedną kopię zapasową za pomocą naszego skryptu.

Mam nadzieję, że dość jasno wytłumaczyłem wam jak korzystać z robocopy. Wyżej wymienione parametry to tylko wierzchołek góry lodowej, aby uzyskać dostęp do wszystkich parametrów wystarczy w wierszu poleceń wpisać

robocopy /?

a wyświetlą nam się wszystkie dostępne parametry m.in. pomijanie plików starszych niż x dni, większych od x bajtów itd. Skoro znacie już składnię tego polecenia z pewnością dostosujecie polecenie robocopy do swoich potrzeb.

Nie musicie za każdym razem wklepywać polecenia w wiersz poleceń. Po prostu zapiszcie je np. w notatniku z rozszerzeniem *.cmd np. backup.cmd i w chwili potrzeby po prostu uruchomcie je jako administrator.

Jak widzicie do wykonania nawet dość zaawansowanego backupu danych wcale nie potrzebujecie zewnętrznych aplikacji wystarczy odrobinę sprytu i dość podstawowa wiedza którą się właśnie z wami podzieliłem.

Czy ten wpis okazał się dla Ciebie przydatny ?

Możesz go ocenić:

Średnia ocena: 4.8 / 5. Głosów: 4

Jeszcze nikt nie zagłosował ! Chcesz być pierwszy ?

Może cię zainteresować:

Ukrywamy pozycję “Niejawny program testów systemu Windows” z panelu Ustawień.

Kabson

19 przydatnych programów dla systemu Windows

Kabson

Jak włączyć profil zasilania “Najwyższa wydajność” w Windows 11

Kabson

Jak zagrać w Lunar Lander na pasku kopiowania plików ?

Kabson

Podłączamy pamięci USB w trybie tylko do odczytu

Kabson

Uaktywniamy pasek wyszukiwania z Windows 8 w Windows 10

Kabson

16 komentarzy

iPOD
iPOD 2017-08-04 at 15:27

Robocopy jest idealne do tworzenia mirrorów zawartości całych dysków – sam tego używam do szybkich backupów. Mógłby jeszcze kompresować zawartość kopii, no ale jak za darmo to i tak jest dobrze.

Odpowiedz
Kabson
Kabson 2017-08-06 at 17:52

Przecież nic nie stoi na przeszkodzie, abyś wrzucił w skrypt polecenie kompresowania folderu (np. 7-zip’em)

Odpowiedz
Avatar
Skcaru 2018-09-12 at 17:35

Witam. A jest taka możliwość żeby podczas kopiowania zostały pominięte te pliki które w nazwie mają jakiś wyraz klucz dzięki któremu będziemy oznaczać pliki których nie chcemy kopiować?
Pozdrawiam.

Odpowiedz
Kabson
Kabson 2018-09-12 at 17:37

W chwili obecnej nie mogę tego sprawdzić. Mój komputer po burzy poszedł w cholewę i dopiero za 2 dni zlożę sobie nowy. Ale prawdopodobnie da się, tylko z pamięci nie podpowiem.

Odpowiedz
Avatar
Skcaru 2018-09-12 at 23:38

To będę czekał na informację. Dzięki ?

Odpowiedz
Kabson
Kabson 2018-09-14 at 14:24

/xd “ścieżka_do_folderu” – w ten sposób robocopy “oleje” wskazany folder
/xf “ściezka do pliku” – w ten sposób olewamy określony plik.
Jutro może się trochę o tym rozpiszę, w chwili obecnej konfiguruję mój nowy sprzęt 🙂

Odpowiedz
Avatar
Skcaru 2018-09-14 at 16:37

Dzieki. A teraz mam taki problem, pliki maja nazwy np. Plik1 us.txt ; Plik2.txt; Plik3.txt. No i chce zeby skopiowal wszystkie a pominal te ktore w nazwie pliku beda mialy “us”. Czy jest w ogole taka możliwosc. Pozdrawiam. ?

Odpowiedz
Kabson
Kabson 2018-09-14 at 16:40

Nie pamiętam jak dokładnie używa się wildcardów w winzgrozie ale byłoby to coś w stylu *us*.txt.

Odpowiedz
Avatar
Skcaru 2018-09-14 at 17:04

Działa. Wielkie dzięki ?

Odpowiedz
Avatar
Marek 2019-05-22 at 19:45

Witam. Mam takie dwa skrypty uruchomione jednoczesnie:
1 robocopy “D:\Dysk lokalny\Raporty” “D:\Dysk sieciowy\Raporty PK” /IF *PK*.txt /E /FFT /MON:1
2 robocopy “D:\Dysk lokalny\Raporty” “D:\Dysk sieciowy\Raporty” /XF *PK*.txt /E /FFT /MON:1
Ma to na celu kopiowanie plikow z wykluczeniem. To wszystko działa w taki sposob, że tworzą się dwa katalogi na dysku sieciowym “Raporty i “Raporty PK” i do pierwszego kopiuje się wszystko co nie zawiera PK a do drugiego co zawiera PK. Czyli są dwie ścieżki. Teraz moje pytanie jest takie czy da się to zrobić w taki sposób żeby była jedna ścieżka , a katalog PK tworzył się wewnątrz folderu gdzie napotyka plik w nazwie z PK. Przykład D:\Dysk sieciowy\Raporty\Kwartał 1\Kwartał 2… i właśnie w tym miejscu jest plik zawierający w nazwie PK i tu tworzy się katalog i wrzuca wszystkie te pliki. Nie wiem czy za dużo nie namieszałem i rozumiecie o co mi chodzi ?
Pozdrawiam.

Odpowiedz
Kabson
Kabson 2019-05-24 at 16:40

Czytam to już trzeci dzień, i dalej nie wiem o co chodzi 😉

Odpowiedz
Avatar
przemex 2021-07-17 at 19:32

Uratowałeś mi życie od 3 dni siedziałem aby zrobić kopię dysku prawie 1TB, ciągle wywalało mi błąd kopiowania za długa nazwa Windows file paths longer than 255 characters podczas funkcji kopiowania windows, masa zmian w windows7 w rejestrze typu LongPathsEnabled and set it to 1, setki solucji w internecie aby rozwiązać ten problem niestety nic nie pomagało, nawet nadałem enable dla grupy windows Enable Win32 long paths aby nie zwracał błędu za długiej nazwy podczas kopiowania plików bez skutki, na postach zagranicznych przewijał się wątek robocopy aby zastosować komendę robocopy d:\*.* e:\*.* niestety nie działała u mnie wywalało błąd i tak trafiłem na Twoją stronę i to był strzał w 10-tkę, są programy do robienia kopii bezpieczeństwa ale 99% komercyjnie zastosowanie jest płatnych, teraz po Twojej solucji robię kopię bezpieczeństwa bez problemu i nawet wydaje mi się że szybciej kopiuje niż funkcją kopiowania w windows. Podziękowania teraz backup bezpieczeństwa jest przyjemny 🙂 zajmuje skopiowanie 1TB bo to masa drobnych plików po kilka kb, ale idzie bez problemu 🙂

Odpowiedz
Kabson
Kabson 2021-07-17 at 23:49

Cieszę się, że mogłem pomóc.

Odpowiedz
Avatar
Adam 2023-09-23 at 07:42

A jak powinna wyglądać składnia z przełącznikiem /MIR, ale żeby syngronizować ze soba dwa komputery przez NAS’a.
czyli komputer A /MIR do NAS i komputer B /MIR do NAS. Chodzi o to żeby nie było problemu z kasowaniem nieistniejących plików.

Odpowiedz
Kabson
Kabson 2023-09-24 at 20:57

Niestety nie mam dostępu do NAS, więc nie mam jak tego sprawdzić
https://klyavlin.wordpress.com/2012/09/19/robocopy-network-usernamepassword/

Odpowiedz
Avatar
Adam 2023-09-28 at 09:40

oki. Dzięki bardzo

Odpowiedz

Zostaw komentarz


Obserwuj nasz blog !
Podaj swój adres email, by być informowanym na bieżąco o nowych artykułach pojawiających się na naszej witrynie.