Batch: Backup-Script zur Verzeichnissynchronisation
Mit einem kleinen Batch-Script und dem windowseigenen Kopiertool Robocopy lässt sich ganz einfach eine Verzeichnissynchronisation ausführen. Ideal für ein Backup, z.B. zur Sicherung der eigenen Dateien auf eine externe Festplatte. Robocopy lässt sich umfassend durch Übergabeparameter steuern und eignet sich daher ideal für den automatisierten Einsatz per Batch-Script. Das Script kann manuell bei Bedarf ausgeführt werden oder automatisch per Aufgabenplanung (z.B. täglich, wöchentlich, bei jedem Herunterfahren des PC).
Vorbereitung
Bevor das Script einsatzfähig ist, müsst ihr das Quell- und Zielverzeichnis in die Scriptdatei eintragen: Bearbeitet die Datei per Rechtsklick → Bearbeiten. Tragt Quell- und Zielverzeichnis ein und speichert die Änderungen an der Datei. Beispiel 1:
SET quelle=C:\Users\maier\Documents
SET ziel=G:\Backup
Wichtig: Es wird kein abschließender Backslash \ angegeben. Außer man möchte ein komplettes Laufwerk kopieren (also z.B. D:\). Außerdem müssen Verzeichnisse die ein Leerzeichen enthalten mit Anführungsstriche umschlossen werden. Beispiel 2:
SET quelle=D:\
SET ziel="H:\Verzeichnis mit Leerzeichen"
Funktionsweise
Und so arbeitet das hier vorgestellte Script:
- Quell- und Zielverzeichnis werden auf Existenz geprüft. Bei einem Fehler bricht das Programm mit einer Fehlermeldung ab.
- Robocopy wird in einer gebräuchlichen Standardkonfiguration ausgeführt und synchronisiert das Ziel komplett mit der Quelle. Das Ziel wird also dabei in denselben Zustand wie die Quelle gebracht. Das heißt, neue Dateien werden kopiert, nicht mehr vorhandene Dateien in der Quelle werden auch im Ziel gelöscht, neuere Dateien in der Quelle überschreiben ältere Versionen im Ziel. Es werden auch leere Verzeichnisse kopiert. Zeitstempel und Dateiattribute der Dateien und Verzeichnisse werden übernommen, nicht jedoch Besitzer oder NTFS ACLs. Dadurch werden Probleme beim Wiederherstellen auf einem anderen PC oder nach einer Windows-Neuinstallation vermieden. (Wenn ihr lieber sämtliche Dateieigenschaften inklusive NTFS Sicherheitsflags kopieren möchtet, löscht einfach den Parameter /COPY:DAT). Lässt sich eine Dateioperation nicht ausführen, versucht es Robocopy bis zu drei Mal mit je 20 Sekunden Wartezeit dazwischen.
ROBOCOPY %quelle% %ziel% /COPY:DAT /MIR /R:3 /W:20
Das Verhalten lässt sich über die entsprechenden Parameter beeinflussen. Sollte eine einzelne Operation fehlschlagen, wird die Synchronisierung trotzdem zu Ende geführt und eine entsprechende Fehlermeldung ausgegeben.
Hinweise
- Zusätzlich zur optischen Ausgabe werden Fehlermeldungen auch mit Zeitstempel in ein Logfile geschrieben, das im selben Ordner erstellt wird, in dem die Scriptdatei liegt.
- Robocopy ist seit Windows Vista vorinstalliert. Sollte es tatsächlich noch Windows XP User geben: Unter Win XP müssen erst noch die Windows Server 2003 Resource Kit Tools installiert werden.
Mi
24. Oktober 2014 um 20:49 Uhr
Hallo
ich finde Ihre Batch Backup Script super ich habe aber das Problem dass ich eine Ganze Festplatte kopieren will also Quelle H:\ und Ziehl V:\ und das gibt ne fehlermeldung!
Können Sie mir da weiterhelfen?