weiter
Locations of visitors to this page

Valid HTML 4.01!
Valid CSS 2.0!

visitors
counter
last modified
28. 04. 2010

Ihr Browser unterstützt kein CSS. Das für die Darstellung dieser Webseiten intendierte Seitenlayout wird deshalb nicht angewandt / angezeigt. Ist dies nicht Ihre Absicht, so haben Sie wahrscheinlich in Ihrem Browser den Autorenmodus deaktiviert. Dennoch sind diese Seiten les- und navigierbar.
Bitte erlauben Sie den Autorenmodus oder verwenden Sie einen CSS-fähigen Browser, wenn Sie diese Seiten so anschauen möchten, wie sie vom Autor gestaltet wurden.

Tipps und Tricks

robocopy und SyncToy

In Windows und auf den Webseiten von Microsoft findet sich manches Programm, dass zu unrecht ein Schattendasein fristet. Zu den ausgesprochenen Schätzen gehört robocopy, ein Kopierprogramm für die Konsole, dessen Möglichkeiten bis zu einer automatischen und permanenten Syncronisation von Verzeichnissen und Partitionen reichen.

Für das Kopieren sehr großer Ordner und Dateien (ab etwa 500 MB) oder das Kopieren über das Netzwerk ist es selbst für den Privatnutzer unverzichtbar, denn Drag & Drop großer Dateien im Explorer funktioniert nicht gut bis hin zum Hängenbleiben des Kopiervorgangs, und im Netz bricht das Kopieren wegen kurzzeitiger Unterbrechungen oft genug ab.

Das Programm robocopy.exe samt Dokumentation ist Bestandteil verschiedener Microsoft Resource Kits; die Version 10 findet sich in den frei zugänglichen Windows Server 2003 Resource Kit Tools. Statt auf einem XP Einzelplatzrechner die dort längst nicht alle einsetzbaren Tools komplett zu installieren, können Sie mit7-Zipdie beiden Dateien robocopy.exe und robocopy.doc aus dem msi-Installerpaket extrahieren. Zweckmäßigerweise legen Sie die robocopy.exe im XP-Windows-Ordner (meist C:\Windows) ab, um ohne explizite Pfadangabe darauf zugreifen zu können.
Unter Windows Vista ist Robocopy zum Systemprogramm aufgestiegen und befindet sich im Ordner %windir%\System32. Diese Version 27 ist nicht abwärtskompatibel. Es gibt leider keine aktualisierte Dokumentation.
Achtung Bei der Benutzung von Robocopy unter Vista für dessen Systemordner wie "Eigene Dateien" unbedingt die Option /XJ – Ausschluss von Junctions – setzen (siehe unten)! Vista arbeitet im Verborgenen reichlich mit diesen. Andernfalls kann es zu endlosen Rekursionen kommen.

Es ist unbedingt sinnvoll, vor dem produktiven Einsatz des Programms – auch unter Vista – die Dokumentation zu Version 10 zu lesen, etwas zu experimentieren und den dann genutzten Befehl / Batchdatei zu testen!
Den Einstieg in die Benutzung von robocopy erleichtern einige Batch- und Jobdateien im Archiv robocopy.zip. Entpacken Sie alle Dateien in einen Ordner. Sie finden darin die Dateien

Starten Sie die Konsole mit Doppelklick auf die Verknüpfung robocopy. Sie bekommen eine kleine Hilfe zu robocopy allgemein, die als Gedächtnisstütze gedacht ist, und den Batchdateien rcopydir und upsync angezeigt. Beachten sie, dass sich die robocopy-Syntax von der anderer copy-Befehle unterscheidet, und Spiegeln ist hier nicht im Sinne eines Images zu verstehen sondern als spezieller Kopiervorgang.

Einige Anwendungsbeispiele:

robocopy C:\einOrdner\UnterOrdner D:\einAndererOrdner /job:copyr
Kopiert alle neuen Dateien und Ordner aus C:\...\UnterOrdner in den vorhandenen Ordner D:\einAndererOrdner.

robocopy C:\einOrdner\UnterOrdner D:\einAndererOrdner text.txt /move /job:copy
Verschiebt nur die Datei text.txt aus C:\...\UnterOrdner in den vorhandenen Ordner D:\einAndererOrdner.

robocopy D:\ H:\Backup /job:mir
Spiegelt die Partition D:\ in den Ordner Backup auf Laufwerk H: .
robocopy D:\Daten H:\Daten /job:mirb
Spiegelt die Ordner "Daten" zwischen NTFS- und FAT-Partition.

upsync D:\Daten\Rechnungen \\bureau\Rechnungen
Gleicht die Ordner Rechnungen auf dem eigenen PC und dem PC "bureau" unter gegenseiter Vervollständigung ab.

rcopydir D:\Daten\Rechnungen H:\Backups /job:copy
Kopiert den Ordner Rechnungen ohne Unterordner von D:\Daten komplett nach H:\Backups\Rechnungen.

rcopydir D:\ E:\ /job:copyr /XF *.*
Kopiert nur die Ordnerstruktur von D:\ auf E:\ .

In den Jobdateien sind sinnvolle Vorgaben für die Kopiervorgänge zusammengefasst. Diese Job- und Batchdateien schreiben die Ausgaben des Programms zusätzlich in Logdateien jobname.log oder batchname.log in dem Verzeichnis, aus dem Job oder Batch gestartet wurden. Schauen Sie in die Job- und Logdateien mit einem Editor hinein.
Umlaute in Dateinamen werden als als OEM-Zeichen in den LOG-Dateien gespeichert. Mit weiter oem2ansi.vbs können Sie diese in Umlaute zurück verwandeln.

Achtung Wenn Sie Robocopy benutzen, achten Sie darauf, dass möglichst keine gelockten Dateien oder solche, auf die der angemeldete Benutzer keine Zugriffsrechte hat, vorhanden sind. Robocopy übergeht diese Dateien, wartet jedoch mit den Jobvorgaben an solchen Dateien 60 s. Ohne die Jobvorgaben, also per default, würde robocopy jedesmal 30.000.000 s warten! (Upsync benutzt die copyr.rcj Jobdatei.)
Der Ordner, aus dem robocopy startet, sollte sich zweckmäßigerweise nicht auf der Partition oder in dem Ordner (Pfad) befinden, die/der gerade kopiert wird.

Insgesamt bis zu drei weitere robocopy-Parameter – wie im letzten Beispiel /XF *.* – lassen sich den Batchdatei-Aufrufen upsync und rcopydir zusätzlich zum /JOB-Parameter hinzufügen.

Achtung FAT-Volumes und möglicherweise Volumes von Network Storage Devices verwenden gröbere Zeitstempel als NTFS. Wenn Sie auf solche Medien nur neue Dateien kopieren möchten, müssen Sie zusätzlich den Schalter /FFT oder /job:MIRB benutzen.

Achtung Mit robocopy können Sie die praktisch erreichbare Datentransferrate zwischen zwei Laufwerken ermitteln. Kopieren Sie eine mindestens 100 MB große Datei:
robocopy Pfad/von Pfad/nach /IF Dateiname /job:copy .
So können Sie z. B. feststellen, ob die USB-Schnittstelle des Rechners und/oder der Stick tatsächlich USB High-Speed unterstützen.
Beim Kopieren sehr vieler kleiner Dateien kann die effektive Transferrate deutlich geringer sein.

Ein einfaches Skript zum Sichern (Spiegeln) von Daten, hier im Ordner D:\Daten, auf einen USB-Stick könnte so aussehen:
Ihr Browser kann das Objekt leider nicht anzeigen! Es wird angenommen, dass der Stick immer den Laufwerksbuchstaben G: erhält. Dies wird mit Hilfe der leeren Datei test auf dem Stick geprüft.
Je nach Erfolg oder Misserfolgt der Sicherung wechselt das Konsolenfenster seine Hintergrundfarbe von Blau nach Grün oder Rot.
Die notwendige Jobdatei mirb.rcj wird in einem Ordner gespeichert, auf den der oder die User, die das Skript nutzen, Zugriff haben. In der Jobdatei muss der Speicherort der Logdatei angepasst werden; hier speichert man sinnvollerweise ebenfalls auf dem Stick: /LOG:G:\mirb.log.

Ein Skriptbeispiel zum automatischen Sichern (Spiegeln) von Daten, wieder im Ordner D:\Daten, auf eine zweite Festplatte beim Herunterfahren des Rechners ist:
Ihr Browser kann das Objekt leider nicht anzeigen! Wie man ein Skript installiert, das beim Herunterfahren ausgeführt wird, ist unter weiter "Temporäre Ordner Löschen" beschrieben. Wichtig ist für solche Skripte, dass alle denkbaren Ausgaben unterdrückt oder in eine Datei umgeleitet werden, die nach der Benutzerabmeldung zuverlässig schreibbar ist. Selbstverständlich sollten Sie die Batchdatei vor dem automatisierten Einsatz umfassend testen.
Die Jobdatei mir.rcj ist hier in %WINDIR% gespeichert und die Logdatei wird dorthin ausgegeben. Falls Sie die Jobdatei aus meinen Downloads verwenden, müssen Sie am Ende der Datei die Zeilen /LOG:mir.log und /TEE auskommentieren (::) oder löschen.
Um die Logdatei für eingeschränkte Benutzer leicht einsehbar zu machen, kann man eine Verknüpfung auf den Desktop legen.

Für große Jobs kann die Logdatei sehr lang werden, was deren Durchsicht auf Fehler mühselig macht. Eine mit /TEE erzeugte Konsolenausgabe ließe sich zwar mit find "ERROR" filtern, diese Ausgabe aber nicht wieder in ein Fehler-Log schreiben.
Abhilfe ist, aus der Logdatei nach Abarbeitung des Jobs mit more logfile | find "ERROR" > errorlog ein Fehlerlog zu erzeugen.

Achtung Robocopy kann nicht das Nulldevice unter Windows ansprechen.1 Damit entfällt leider eine sehr einfache und effektive Möglichkeit, die Lesbarkeit von Backups zu prüfen2: Das Kopieren nach NUL.

Auch unter Vista lassen sich die hier vorgestellten Beispiele und Jobdateien verwenden.
Eine ausführlichen Hilfe für die Vista-Version von Robocopy erhalten Sie durch Eingabe von Robocopy /?. Eine erwähnenswerte Erweiterung der Optionen ist die Möglichkeit, den Ausschluss von Symlinks mit /XJ für Dateien oder Verzeichnisse mit /XJF oder /XJD zu spezifizieren.


SyncToy für Windows ist ein neues, von Microsoft kostenlos erhältliches Programm mit grafischer Oberfläche zum Synchronisieren von Ordnern. Die Menüführung – bislang nur englisch – ist selbsterklärend. Für die meisten Fälle/Benutzer reichen die Möglichkeiten, die SyncToy bietet, völlig aus. Ebenso wie Robocopy erlaubt es, direkt UNC-Pfade zu verwenden und berücksichtigt unterschiedliche Zeitstempel. Ein Nachteil von SyncToy ist, dass es keine Option bietet, bestimmte Dateien auszuschließen.

SyncToy kann in jeden Ordner installiert werden, in dem der Benutzer Schreibrechte hat; es gibt keine Registryeinträge. Einstellungen für Synchronisationsaufträge werden benutzerspezifisch unter Eigene Dateien und ordnerspezifisch in der obersten Ebene des Synchronisationspaares gespeichert. Letzeres erlaubt, unterschiedliche Wechselmedien im gleichen Laufwerk individuell zu berücksichtigen.

Im Gegensatz zu Aktenkoffer oder offline Ordnern ist dieses Programm wirklich leicht von jedem verwendbar. Das Programm benötigt für Windows XP SP2 das .NET-Framework und ist arbeitet unter Vista. Hier ist es sogar vom jedem Benutzer installierbar, weil es als Legacyengl.; dt: hier in etwa "Hinterlassenschaft". Legacy sind Programme, die für Vorgängerversionen des Betriebssystems geschrieben wurden.-Programm erkannt und deshalb vollständig nach %LOCALAPPDATA% installiert wird.

Achtung Zur Installation unter XP verlangt Synctoy ein installiertes .NET 1.1. Es läuft jedoch nach der Installation auch mit einem ausschließlich vorhandenen .NET 2.0.
Da bei der Installation keine Registry-Einträge geschrieben werden, kann man den SyncToy-Programmordner nach einer Installation auf einem PC mit .NET 1.1 einfach auf einen PC mit .NET 2.0 kopieren.

Seine Logs legt SyncToy in der allgemeinen Ereignisanzeige von Windows unter "Anwendungen" ab. Anschauen kann dieses Log jeder Benutzer mit Start > Ausführen > eventvwr ; löschen des Logs und ändern der Einstellungen sind nur mit Administratorrechten möglich!
Achtung Ist dieses Log voll, kommt es beim Verwenden von SyncToy als Benutzer zu einer Registry-Fehlermeldung. Abhilfe schafft das Löschen des Logs und ggf. Ändern der Einstellungen.

           
1 Wie auch xcopy; nur das einfachecopy kann nach NUL kopieren. Vorausgesetzt, der Treiber hierfür ist vorhanden und läuft.
Warum einige Befehle NUL ansprechen können und andere nicht, ist auch eine der Seltsamkeiten in Windows.
2 Lesbarkeit eines Backup ist natürlich nicht alles, aber die erste Voraussetzung, ob es überhaupt brauchbar ist.

05.12.2005/25.01.2009

 nach oben

Änderungen dieser Seite verfolgen:

it's private by ChangeDetection