Kommandozeilenbefehle: Übersicht • Variablen • ERRORLEVEL
Die wichtigsten Befehle: dir • cd • tree • del • attrib • if • xcopy • robocopy
Robocopy
Kommandozeilenbefehle für Stapeldateien (Wikibooks)
ROBOCOPY (Wikibooks)
Sie erhalten eine vollständige Liste aller Befehle der Eingabeaufforderung, wenn Sie den Befehl help eingeben.
Was ist zu beachten?
- Nach
Die Parameter
Code | Bedeutung |
---|---|
/S | Der Kopierbefehl betrifft auch alle Unterordner (Subdirectories). |
/PURGE | Dateien, die im Original gelöscht worden sind, werden auch aus der Kopie gelöscht. |
/FP | Im Protokoll werden die kopierten Dateien einschließlich Ordnernamen aufgelistet. |
/maxage:20110501 | Dateien vor dem 01.05.2011 werden ignoriert. |
/maxage:30 | Dateien älter als 30 Tage werden ignoriert. |
/XA:RSH | Dateien mit den Attributen „read only“, „system“ und „hidden“ (versteckt) werden ignoriert. |
/XD | Die dahinter aufgezählten Ordner werden beim Kopieren ignoriert, weil dort erfahrungsgemäß keine Benutzerdateien sind. |
/XF | Alle dahinter aufgezählten Dateiarten werden ignoriert. |
/w:1 /r:1 | Wenn sich eine Datei nicht lesen lässt, erfolgt nach einer Sekunde (w:1) eine einzige (r:1) Wiederholung. |
Anmerkung zu /XD: Beispiele für Ordner, die nicht gesichert werden brauchen, sind: eventuelle Recovery-Dateien, der Windowsordner und der bzw. die Programm-Ordner, der Papierkorb (je nach Windows-Version hat der Papierkorb verschiedene Namen), Installationsdateien und Systemdateien.
Anmerkung zu /XF: Beispiele für Dateien, die nicht gesichert werden brauchen, sind:
- *.tib und *.img sind Image-Dateien.
- *.msi (Microsoft Installer) sind Installationsdateien.
- *.exe, *.dll, *.com und *.ini sind Programmdateien. Diese zu sichern ist unsinnig, denn im Katastrophenfall müssen ohnehin alle Programme neu installiert werden.
- Obwohl die Datei ntuser.* die persönlichen Einstellungen (z. B. Anmeldepasswort) enthält, ist deren Sicherung sinnlos, denn sie läßt sich nicht zurückkopieren.
Errorlevel-Code
Der Befehl robocopy gibt den folgenden ERRORLEVEL zurück:
ERRORLEVEL | Bedeutung |
---|---|
0 | Es wurde nichts kopiert, Quelle und Ziel sind komplett identisch. |
1 | Eine oder mehrere Dateien wurden erfolgreich kopiert (es gab neue Dateien). |
2 | Einige Extra-Dateien oder -Ordner wurden entfernt. Keine Dateien wurden kopiert. |
4 | Einige abweichende Dateien oder Ordner wurden gefunden, siehe Logbuch. Aufräumen könnte nötig sein. |
8 | Einige Dateien oder Ordner konnten nicht kopiert werden (Fehler beim Kopieren oder Wiederholungs-Limit erreicht). Beachte das Logbuch. |
16 | Ernster Fehler. Robocopy konnte keine Dateien kopieren. Berechtigungsfehler? |
Anmerkung 1: „Extra-Dateien“ sind Dateien, die in der Quelle bereits gelöscht sind, aber im Ziel noch vorhanden sind und die beim Synchronisieren deshalb im Ziel gelöscht werden.
Anmerkung 2: Die Bits des Fehlercode können kombiniert werden: 3 = 2+1, 5 = 4+1, 6 = 4+2, 7 = 4+2+1
Jeder Errorlevel von 0 bis 7 bedeutet einen Erfolg des Kopiervorgangs.
Jeder Errorlevel von 8 oder größer bedeutet, dass etwas schief gegangen ist.
Eine (unvollständige) Auswertung ist folgendermaßen möglich:
robocopy %1 %2 /s ...
if errorlevel 8 echo Kopieren fehlerhaft beendet & goto Schluss
echo Kopieren erfolgreich
Eine vollständige Auswertung des Errorlevel ist folgendermaßen möglich:
if %ERRORLEVEL% EQU 16 echo ***FATAL ERROR*** & goto end
if %ERRORLEVEL% EQU 15 echo OKCOPY + FAIL + MISMATCHES + XTRA & goto end
if %ERRORLEVEL% EQU 14 echo FAIL + MISMATCHES + XTRA & goto end
if %ERRORLEVEL% EQU 13 echo OKCOPY + FAIL + MISMATCHES & goto end
if %ERRORLEVEL% EQU 12 echo FAIL + MISMATCHES& goto end
if %ERRORLEVEL% EQU 11 echo OKCOPY + FAIL + XTRA & goto end
if %ERRORLEVEL% EQU 10 echo FAIL + XTRA & goto end
if %ERRORLEVEL% EQU 9 echo OKCOPY + FAIL & goto end
if %ERRORLEVEL% EQU 8 echo FAIL & goto end
if %ERRORLEVEL% EQU 7 echo OKCOPY + MISMATCHES + XTRA & goto end
if %ERRORLEVEL% EQU 6 echo MISMATCHES + XTRA & goto end
if %ERRORLEVEL% EQU 5 echo OKCOPY + MISMATCHES & goto end
if %ERRORLEVEL% EQU 4 echo MISMATCHES & goto end
if %ERRORLEVEL% EQU 3 echo OKCOPY + XTRA & goto end
if %ERRORLEVEL% EQU 2 echo XTRA & goto end
if %ERRORLEVEL% EQU 1 echo OKCOPY & goto end
if %ERRORLEVEL% EQU 0 echo No Change & goto end
:end