CMD ROBOCOPY

,

Kommandozeilenbefehle: ÜbersichtVariablenERRORLEVEL
Die wichtigsten Befehle: dirchkdskcdmdrdtreedelattribifxcopyrobocopy

Robocopy

Kommandozeilenbefehle für Stapeldateien (Wikibooks)
ROBOCOPY (Wikibooks)
Beispiel: Sicherung des kompletten Systemlaufwerks

Was ist zu beachten?
  • Nach

Die Parameter

CodeBedeutung
/SDer Kopierbefehl betrifft auch alle Unterordner (Subdirectories).
/PURGEDateien, die im Original gelöscht worden sind, werden auch aus der Kopie gelöscht.
/FPIm Protokoll werden die kopierten Dateien einschließlich Ordnernamen aufgelistet.
/maxage:20110501Dateien vor dem 01.05.2011 werden ignoriert.
/maxage:30Dateien älter als 30 Tage werden ignoriert.
/XA:RSHDateien mit den Attributen „read only“, „system“ und „hidden“ (versteckt) werden ignoriert.
/XDDie dahinter aufgezählten Ordner werden beim Kopieren ignoriert (dort sind erfahrungsgemäß keine Benutzerdateien).
/XFAlle 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.

Der von robocopy erstellte Ordner ist eventuell unsichtbar. In diesem Fall kann man mit dem Befehl attrib -h -s Zielordner\*.* /s /d den Ordner sichtbar machen.

Errorlevel-Code

Der Befehl robocopy gibt den folgenden ERRORLEVEL zurück:

ERRORLEVELBedeutung
0Es wurde nichts kopiert, Quelle und Ziel sind komplett identisch.
1Eine oder mehrere Dateien wurden erfolgreich kopiert (es gab neue Dateien).
2Einige Extra-Dateien oder -Ordner wurden entfernt. Keine Dateien wurden kopiert.
4Einige abweichende Dateien oder Ordner wurden gefunden, siehe Logbuch. Aufräumen könnte nötig sein.
8Einige Dateien oder Ordner konnten nicht kopiert werden (Fehler beim Kopieren oder Wiederholungs-Limit erreicht). Beachte das Logbuch.
16Ernster Fehler. Robocopy konnte keine Dateien kopieren. Vielleicht Berechtigungsfehler?

Anmerkung 1: „Extra-Dateien“ sind Dateien, die in der Quelle bereits gelöscht sind, aber im Ziel noch vorhanden sind und die deshalb beim Synchronisieren 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
Beispiel: 3 (2+1): Einige Dateien wurden erfolgreich kopiert, Extra-Dateien wurden entfernt. Fehler sind nicht aufgetreten.

Jeder Errorlevel von 0 bis 7 bedeutet einen Erfolg des Kopiervorgangs.
Jeder Errorlevel von 8 oder größer bedeutet, dass einiges kopiert wurde, aber etwas ist dabei schief gegangen.
Ein Errorlevel von 16 bedeutet vollen Misserfolg: nichts wurde kopiert.

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

 


 

Skills

Posted on

27. April 2023

Submit a Comment

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie mehr darüber, wie Ihre Kommentardaten verarbeitet werden .

Skills

Posted on

27. April 2023

Cookie-Einwilligung mit Real Cookie Banner