Robocopy (ang. Robust File Copy) to jedno z najpotężniejszych narzędzi dostępnych w systemie Windows do kopiowania i synchronizacji plików oraz katalogów. W przeciwieństwie do standardowych komend copy
i xcopy
, Robocopy oferuje rozbudowane możliwości, które sprawiają, że jest chętnie wykorzystywane przez administratorów, informatyków i firmy do wykonywania kopii zapasowych, przenoszenia danych i zarządzania dużymi zbiorami plików.
Korzystanie z Robocopy ma wiele zalet:
xcopy
.Ogólna składnia wygląda następująco:
robocopy <źródło> <cel> [pliki] [opcje]
Gdzie:
Parametr | Opis |
---|---|
/S | Kopiuje podkatalogi, ale pomija puste. |
/E | Kopiuje wszystkie podkatalogi, w tym puste. |
/Z | Tryb wznowienia – umożliwia kontynuację kopiowania po przerwaniu. |
/MIR | Tworzy lustrzaną kopię źródła (synchronizacja). Usuwa pliki w katalogu docelowym, które nie istnieją w źródle. |
/XO | Pomija starsze pliki – kopiuje tylko nowsze. |
/XC | Pomija pliki z różnicą w zawartości. |
/XN | Pomija nowsze pliki. |
/COPY:DAT | Kopiuje dane (D), atrybuty (A) i znaczniki czasu (T). Przykład: robocopy C:\Dane D:\Backup /COPY:DAT kopiuje pliki z zachowaniem ich metadanych. |
/COPYALL | Kopiuje wszystkie atrybuty plików, w tym prawa NTFS. |
/R:n | Liczba ponownych prób kopiowania w przypadku błędu. Domyślnie 1 mln. |
/W:n | Czas oczekiwania (w sekundach) pomiędzy kolejnymi próbami. Domyślnie 30 s. |
/LOG:plik.txt | Zapisuje raport do wskazanego pliku. |
/TEE | Wyświetla wynik w konsoli i zapisuje go do pliku (z opcją /LOG). |
/XD katalog | Wyklucza wskazany katalog z kopiowania. |
/XF plik | Wyklucza wskazany plik z kopiowania. |
/MT[:n] | Włącza wielowątkowe kopiowanie (domyślnie 8 wątków, max. 128). Przykład: /MT:32 przyspiesza kopiowanie na szybkich dyskach SSD. |
Uwaga dotycząca /MT: Wielowątkowość znacząco przyspiesza kopiowanie, szczególnie na dyskach SSD. Zaleca się używanie 8–32 wątków, ponieważ zbyt duża liczba (np. 128) może obciążyć system, zwłaszcza na starszych dyskach HDD.
robocopy C:\Dane D:\Backup /E
Komenda skopiuje wszystkie pliki i podkatalogi (także puste) z folderu C:\Dane
do D:\Backup
.
robocopy C:\Dane D:\Backup /Z /E
Opcja /Z
pozwala na kontynuację kopiowania, gdy proces zostanie przerwany (np. awaria sieci).
robocopy C:\Projekty D:\Projekty /MIR
Folder D:\Projekty
będzie identyczny jak źródłowy. Pliki nieistniejące w źródle zostaną usunięte z katalogu docelowego.
robocopy C:\Dane D:\Backup /XO
Przydatne przy codziennym backupie – kopiuje tylko pliki, które zostały zmodyfikowane.
robocopy C:\Dane D:\Backup /E /LOG:C:\raport.txt
Raport z kopiowania zostanie zapisany w pliku raport.txt
.
robocopy C:\Dane D:\Backup /E /XD temp cache /XF *.tmp
Pomijane będą katalogi temp
i cache
oraz wszystkie pliki z rozszerzeniem .tmp
.
robocopy C:\Dane D:\Backup /MT:32
Kopiowanie odbywa się przy użyciu 32 wątków równolegle – znacząco przyspiesza proces na szybkich dyskach.
robocopy \\Serwer1\Dane \\Serwer2\Backup /E /Z /COPYALL /LOG:C:\log_kopiowania.txt
Kopiuje wszystkie pliki i podkatalogi z serwera źródłowego na serwer docelowy, zachowując prawa NTFS i logując operację. Wymaga odpowiednich uprawnień sieciowych.
robocopy C:\Dane D:\Backup /MIR /XO /R:3 /W:5
Kopiuje tylko nowsze pliki, wykonując maksymalnie 3 próby w przypadku błędu, z 5-sekundowym odstępem między próbami.
Robocopy można łatwo zautomatyzować, np. w skryptach batch lub PowerShell, aby wykonywać regularne kopie zapasowe. Poniżej przykład prostego skryptu batch do codziennego backupu:
@echo off
set SOURCE=C:\Dane
set DEST=D:\Backup
set LOG=C:\Logs\backup_%date:~-4%%date:~3,2%%date:~0,2%.txt
robocopy %SOURCE% %DEST% /MIR /XO /LOG:%LOG% /TEE
echo Backup completed at %time% >> %LOG%
Ten skrypt można dodać do Harmonogramu Zadań Windows, aby uruchamiał się codziennie. W PowerShell można uzyskać większą elastyczność, np.:
$source = "C:\Dane"
$dest = "D:\Backup"
$log = "C:\Logs\backup_$(Get-Date -Format 'yyyyMMdd').txt"
robocopy $source $dest /MIR /XO /LOG:$log /TEE
icacls
lub Eksploratora Windows./MIR
usuwa pliki nieistniejące w źródle.Xcopy
to starsze narzędzie kopiowania, które w wielu scenariuszach jest już przestarzałe. Robocopy zapewnia większą kontrolę, obsługuje prawa NTFS, logowanie, wznowienia i synchronizację – dlatego jest rekomendowanym wyborem do pracy z dużą ilością danych.
Robocopy jest dostępny w systemie Windows od wersji XP (i Windows Server 2003) wzwyż. Wszystkie opisane parametry działają w systemach Windows 7, 10, 11 oraz wersjach serwerowych (np. Windows Server 2019, 2022). W starszych systemach (np. Windows XP) niektóre opcje, jak /MT
, mogą nie być dostępne.
Robocopy to narzędzie, które każdy administrator i zaawansowany użytkownik Windows powinien znać. Dzięki ogromnej liczbie parametrów pozwala tworzyć niezawodne kopie zapasowe, synchronizować dane pomiędzy serwerami i automatyzować procesy związane z plikami. Odpowiednio użyte – staje się fundamentem bezpiecznego i wydajnego zarządzania plikami.