Das robocopy ein nützliches Tool zum schnellen Kopieren von Dateien ist, dürfte inzwischen hinlänglich bekannt sein. Spätestens mit dem festen Einzug in Microsofts Betriebssysteme ist das Programm aus dem Admin-Alltag nicht mehr wegzudenken. Doch außer dem plumpen Dateien und Ordner kopieren lässt sich noch mehr mit robocopy anstellen.
Ordnerstruktur kopieren
Manchmal kommt es vor, dass man sich eine Ordnerstruktur aufgebaut hat, die nun in der gleichen Form für einen weiteren Vorgang oder ein weiteres Projekt benötigt wird. Im Normalfall setzt sich der Anwender nun hin, kopiert das komplette Verzeichnis und löscht die einzelnen Dateien aus der Kopie heraus, sodass eine leere Ordnerstruktur stehen bleibt. Je nach Größe und Komplexität des Ordners kann dies eine Weile dauern. Einfacher funktioniert es mit einem Befehl, bei dem man Robocopy Parameter für genau dieses Vorhaben mitgibt.
robocopy C:\Projekt12 C:\Projekt13 /MIR /NOCOPY
Mit diesem kurzen Einzeiler wird die komplette Verzeichnisstruktur des Ordners 2012 in den Ordner 2013 kopiert. Durch den Zusatz nocopy werden keine Dateien kopiert.
Skript vor Ausführung testen
Robocopy ist ein mächtiges Tool, das bei der richtigen Handhabung einen sehr großen Nutzen mit sich bringt. Leider verzeiht es aber auch keine Fehler, und so lässt sich mit einem falschen Robocopy Parameter auch sehr viel Unheil anrichten. Besonders mit dem Parameter /MIR sollte man sehr vorsichtig umgehen, da hierbei auch vorhandene Daten des Ziels überschrieben, bzw. gelöscht werden können. Wer sich vor dem Absetzen des Befehls absichern möchte, kann dies mit dem Parameter /L tun:
robocopy C:\Projekte D:\Projekte /MIR /L /LOG:C:\Temp\rcopy.txt
Dieser Befehl erzeugt eine Datei rcopy.txt im Ordner C:\Temp. In dieser Datei wird der Ablauf des Skriptes protokolliert, so wie es ausgeführt werden würde. Ist alles wie gewünscht, braucht man lediglich das /L entfernen und der Kopiervorgang wird durchgeführt.
Zeitgesteuertes Ausführen von robocopy
Manchmal kann es notwendig sein, Dateien zu bestimmten Uhrzeiten zu kopieren. Beispielsweise vor einer Bandsicherung oder während einer Arbeitspause. Dies ließe sich nun entweder per geplanten Task erledigen, oder auch, falls der Kopierbefehl eventuell Teil eines größeren Skriptes ist, per robocopy. Der Robocopy Parameter hierfür lautet /RH:
robocopy C:\Protokolle D:\Protokolle /RH:2200-2215
Der Befehl zum Kopieren wird in diesem Fall um 22 Uhr gestartet und um 22.15 Uhr beendet, unabhängig davon, ob bis dahin der komplette Ordner kopiert wurde. Dies kann sich als sehr nützlich erweisen, wenn Kopierbefehle zu bestimmten Uhrzeiten beendet sein müssen.
Quellordner überwachen
Robocopy Parameter lassen sich auch als Endlos-Schleife einsetzen. So ermöglicht der Befehl /MON die Überwachung des Quellordners auf Änderungen. Standardmäßig wird dann jede Minute überprüft, ob in dem gesamten Quellordner eine bestimmte Anzahl an Änderungen vorgenommen wurden. Wird dieser Wert überschritten startet der Kopierbefehl erneut und beginnt nach dem Durchlauf erneut die Überwachung der Quelle:
robocopy C:\Projekt D:\Projekt /MON:5 /MOT:2
In diesem Beispiel wird die Quelle alle zwei Minuten auf Änderungen überprüft. Werden fünf oder mehr Änderungen registriert, wird die Verarbeitung gestartet. Dieser Befehl erlaubt eine permanente Datensicherung eines bestimmten Ordners.
Wie Du siehst, lassen sich mit Robocopy viele nützliche Skripte schreiben. Viele fertige Skripte (nicht nur Robocopy) findet Ihr in dieser Skriptsammlung.
Robocopy kann also weit mehr als einfach nur Dateien kopieren oder verschieben. Die komplette Befehlsreferenz kann jederzeit über die Eingabe vono robocopy /? eingesehen werden. Robocopy ist Bestandteil von allen Microsoft Betriebssystemen seit Windows Vista. Für sehr alte Systeme wie Windows XP lässt sich das nützliche Tool mit den Windows Server 2003 Ressource Kit Tools nachrüsten.
Ebenfalls interessant:
- Access Datenbank öffnen ohne Access
- Dateien mit PHP umbenennen und verschieben
- 5 nützliche Screenshot Tools für Windows
- Wichtige CMD Befehle
[adrotate banner=“19″]