robocopy zum Sichern und Löschen verwenden

Die Microsoft-Utility robocopy ist seit Jahren mein Lieblings-Programm, wenn es darum geht, ganze Festplatten oder Verzeichnisbäume dateiweise zu kopieren,  z.B. zu Zwecken der Datensicherung.

Der CMD-Befehl

robocopy c:\ x:\backup /w:0 /r:0 /mir /xj

sichert z.B. alle Dateien der Festplatte c:\ in das Verzeichnis x:\backup (x: könnte z.B. eine externe Festplatte sein).

Wenn der normale Windows Explorer auf eine vom System gesperrte Datei trifft (z.B. die Registry-Dateien u.v.m.), bietet er mir nur die Möglichkeiten [Wiederholen] und [Abbrechen] an. Wiederholen bringt aber nichts, da die Datei auch beim nächsten Versuch noch gesperrt sein wird. Und wenn ich [Abbrechen] wähle, werden alle danach folgenden Dateien nicht mitkopiert. Diese Variante ist also für Sicherungszwecke denkbar ungeeignet.

robocopy geht mit dieser Problematik wesentlich professioneller um: Über den Schalter /r (=retry) kann ich ihm sagen, wie oft er versuchen soll, eine gesperrte Datei zu kopieren und mit /w (=wait) teile ich ihm die Anzahl Sekunden zwischen den Wiederholungen mit. /w:0 /r:0 bedeutet also: Wenn Du eine vom System gesperrte Datei findest, mach einfach mit der nächsten weiter.

Über /mir (=Mirror) weise ich robocopy an, eine 1:1-Kopie des Quellverzeichnisses anzulegen. Das beinhaltet das Löschen von Dateien, die sich noch im Zielverzeichnis befinden, jedoch im Quellverzeichnis gelöscht wurden.

/xj sorgt dafür, dass robocopy Abzweigungspunkten (eng. junction points) nicht folgt. Standardmäßig macht er das nämlich, und dann findet er unter \users\meinname den Abzweigungspunkt „Eigene Dateien“, der wiederum zu \users\meinname abzweigt und man hat eine klassische Endlosschleife. robocopy schreibt die Sicherungsfestplatte voll und kommt nie zum Ende.

robocopy eignet sich hervorragend, um die Daten von einem alten Computer über ein externes Laufwerk auf einen neuen Computer zu übertragen. Wenn man auf dem neuen Computer die Daten aus der Sicherung in die entsprechenden Verzeichnisse verschoben hat, und die restlichen, nicht benötigten, Daten löschen will, trifft man häufig auf ein sehr nerviges Problem: Der Internet-Explorer legt temporäre Dateien mit sehr langen Dateinamen an. Diese überschreiten die maximale Länge von 260 Zeichen, die seitens Windows normalerweise vorgegeben sind. Offensichtlich kann der IE mit so langen Dateien umgehen, und auch robocopy bekommt das hin. Leider kann der Windows Explorer diese Dateien jedoch nicht löschen. Rein theoretisch müsste man die Dateien also suchen, ihnen manuell einen kürzeren Dateinamen geben und sie dann löschen. Und das kann dauern …

Wesentlich eleganter ist es, wenn man robocopys /mir-Schalter dafür verwendet. Wie bereits oben beschrieben löscht dieser Schalter ja Dateien, die es im Zielverzeichnis gibt, im Quellverzeichnis jedoch nicht. Dieses Verhalten kann ich sehr elegant zum Löschen des Sicherungsverzeichnisses nutzen, indem ich ein leeres Verzeichnis anlege und mit robocopy in das Backupverzeichnis mit den überlangen Dateinamen kopiere:

robocopy c:\leer c:\backup /mir

 

 

Veröffentlicht in Allgemein, Datensicherung, Windows.