Datum: | Artikel, Sicherheit, Software, Windows

Konnte man Robocopy bislang nur über die "Windows Server 2003 Resource Kit Tools" beziehen, gehört es seit Windows Vista zum festen Bestandteil des Betriebssystems. Doch was ist Robocopy eigentlich und wozu dient es? Welche Vorteile bietet Robocopy gegenüber xcopy oder der normalen Kopier-Funktion von Windows? Diese Fragen sollen in diesem Artikel ein wenig näher beleuchtet werden.

  • Erfahren Sie, was Robocopy genau ist und wie Sie das Werkzeug effektiv einsetzen.
  • Lernen Sie eigene Backup-Jobs mit Filtern und Parametern zu erstellen.
  • Mit einigen Beispielen können Sie direkt loslegen.

Was ist Robocopy?

Robocopy ist ein mächtiges Kommandozeilen-Kopier-Programm. Es dient dazu, inkrementelle Backups von einem Ort an einem anderen zu erstellen. Die Handhabung mag anhand der unzähligen, teils kryptisch anmutenden Parameter etwas umständlich erscheinen. Ein einfaches Backup Ihrer wichtigsten Daten lässt sich trotzdem in sehr kurzer Zeit bewerkstelligen, da es reicht, einen Bruchteil dieser Parameter zu kennen. Über den Taskplaner bzw. die Aufgabenplanung können die Synchronisationsvorgänge sogar automatisiert werden.
Wie bereits gesagt, arbeitet Robocopy inkrementell. Es werden also nur neue oder geänderte Dateien berücksichtigt, was den Kopiervorgang um ein Vielfaches beschleunigen kann. Als Grundlage für diese Entscheidung dienen Robocopy zum einen der Zeitpunkt der letzten Änderung der Datei und zum anderen die Größe der Datei.

Wo bekomme ich Robocopy?

Robocopy ist in den Windows Server 2003 Resource Kit Tools enthalten. Seit Windows Vista müssen Sie dieses Paket nicht installieren, da Robocopy bereits zum Lieferumfang des Betriebssystems gehört.

Vorteile von Robocopy gegenüber copy und xcopy

Viele Anwender werden sich nun fragen: Wozu brauche ich Robocopy? Ich habe doch copy und xcopy. Diese zwei Tools sind zwar für viele alltägliche Kopiervorgänge die richtigen, wenn es jedoch darum geht, ein inkrementelles Backup anzulegen, versagen beide. Copy kann nur Inhalte der obersten Ebene kopieren und berücksichtigt Unterordner überhaupt nicht. Xcopy kann mit dem Parameter /s zwar auch Unterordner und deren Dateien berücksichtigen, jedoch keine inkrementelle Kopie anfertigen. So dauert ein Kopiervorgang, der mehrere GB an Daten beinhaltet, immer sehr lange, da grundsätzlich alle Dateien erneut kopiert werden. Außerdem werden keinerlei Dateien im Archivordner gelöscht, auch wenn sie im Quellordner nicht mehr vorhanden sind. Hier kommt Robocopy ins Spiel. Robocopy berücksichtigt neue, geänderte und auch gelöschte Dateien. Dabei ist jedoch Vorsicht geboten. Wenn Sie im Quellordner versehentlich eine Datei gelöscht haben und danach Ihr Backup aktualisieren, wird diese Datei auch in Ihrem Backup nicht mehr vorhanden sein, da Robocopy nicht mehr vorhandene Dateien der Quelle ohne Nachfrage auch im Ziel löscht.

Wie lege ich ein Backup an?

Prinzipiell benötigen Sie zum Anlegen eines Backups nur einen einzigen Parameter von Robocopy. Dieser Parameter lautet /MIR (Mirror). /MIR legt eine Spiegelung der Struktur der Quelle in einem von Ihnen vorgegebenen Archiv-Ordner an. /MIR besteht eigentlich aus zwei Parametern von Robocopy. /E und /PURGE. /E kopiert alle vollen und auch leeren Unterverzeichnisse, /PURGE löscht alle Dateien im Zielordner, die in der Quelle nicht mehr vorhanden sind. Die Struktur des Befehls muss aussehen wie folgt:

robocopy [Quelle] [Ziel] /MIR

Falls Ihre Pfade Leerzeichen enthalten, muss der Pfad in Anführungszeichen gesetzt werden. Konkretes Beispiel. Sie wollen den Inhalt des Ordners C:Meine Musik in den Ordner D:BackupMeine Musik spiegeln. Dazu muss der Befehl lauten:

robocopy "C:\Meine Musik" "D:\Backup\Meine Musik" /MIR

Dieser Befehl kann sowohl zum erstmaligen Anlegen eines Backups verwendet werden als auch für die nachfolgenden Aktualisierungen. Standardmäßig ergänzt Robocopy diese Eingabe um weitere Parameter. So wird aus unserer Befehlszeile von Robocopy folgender Befehl generiert:

robocopy "C:\Meine Musik" "D:\Backup\Meine Musik" /S /E /COPY:DAT /PURGE /MIR /R:1000000 /W:30

Eine Erklärung der einzelnen Parameter erhalten Sie im Verlauf des Artikels.

Einige Parameter

Generell können Sie die Parameter von Robocopy abfragen, indem Sie ein Kommandozeilenfenster öffnen (Start -> Ausführen -> cmd) und dort folgende Zeile tippen: robocopy /?

Der Befehl /COPY:copyflag[s]

Wie in unserer Beispielzeile zu sehen, verwendet Robocopy standardmäßig den Befehl /COPY:DAT. Die Parameter von /COPY im Einzelnen lauten:

  • D=Data (Datei-Inhalt)
  • A=Attributes (Attribute wie etwa versteckt, schreibgeschützt etc.)
  • T=Timestamps (Zeitstempel, also Erstellungsdatum, Änderungsdatum und Datum des letzten Zugriffs)

Weitere Parameter von Copy:

  • S=Security=NTFS ACLs. Hier werden die in den NTFS ACLs untergebrachten Zugriffsrechte mit kopiert. Da den heutigen Dateisystemen meist NTFS zugrunde liegt, kann das durchaus sinnvoll sein. Der Parameter /SEC hat die gleiche Funktion.
  • O=Owner info. Zusätzlich zu den Benutzerrechten kann Robocopy auch den Besitzer kopieren. Der Parameter /O erledigt das.
  • U=aUditing info. Dieser Parameter bewirkt, dass auch die Überwachungsoptionen mit kopiert werden.

Statt der Eingabe von COPY:DATSOU kann auch /COPYALL verwendet werden.
Es ist auch möglich, keinerlei Dateiinformationen zu kopieren. Gerade bei der ausschließlichen Verwendung von /PURGE ist das sinnvoll. Der dafür zuständige Parameter lautet /NOCOPY.

Für den Heimanwender wird die von Robocopy ergänzte Default-Einstellung COPY:DAT wohl ausreichen, für Systemadministratoren können sich die weiteren Parameter jedoch als durchaus sinnvoll erweisen.

Die Parameter /R:n und /W:n

Wie an der obigen Beispielzeile zu sehen ist, hat Robocopy auch hier bereits Default-Werte eingetragen. /R:n gibt die Anzahl der Wiederholungen an, die Robocopy unternimmt, falls ein Kopiervorgang nicht erfolgreich war. /W:n gibt die Wartezeit in Sekunden an, die pausiert wird, wenn ein Kopiervorgang nicht erfolgreich war. Mit der Default-Einstellung (/R:1000000 /W:30) wird Robocopy also bis zu 347 Tage lang einen erfolglosen Kopiervorgang fortsetzen.

Die Filterfunktionen /XF /XD

Bisher werden in unserem Beispiel-Backup alle Dateien und Unterordner kopiert. Jedoch kann es auch schon mal nötig sein, Verzeichnisse oder Dateien vom Backup auszuschließen. Auch hier gibt es entsprechende Parameter. /XF exkludiert Dateien oder Dateitypen, die von Ihnen angegeben werden können. Auch Wildcards werden hier unterstützt. Nehmen wir für unser Beispiel an, Sie möchten keine Playlists in Ihr Backup aufnehmen. Die Playlisten haben das Format m3u. Unsere Befehlszeile müsste also lauten wie folgt:

robocopy "C:\Meine Musik" "D:\Backup\Meine Musik" /MIR /XF *.m3u

Um komplette Ordner aus dem Backup auszuschließen, wird der Parameter /XD benötigt. Für unser Beispiel existiert im Ordner C:Meine Musik der Unterordner mit dem Namen Dokumente. Die Befehlszeile, um den Ordner Dokumente nicht mit einzuschließen, müsste lauten:

robocopy "C:\Meine Musik" "D\:Backup\Meine Musik" /MIR /XD "C:\Meine Musik\Dokumente"

Eine Kombination der beiden Parameter ist natürlich auch möglich, damit weder die Playlisten noch der Ordner Dokumente kopiert werden.

robocopy "C:\Meine Musik" "D:\Backup\Meine Musik" /MIR /XF *.m3u /XD "C:\Meine Musik\Dokumente"

Bei den Dateifiltern gibt es noch eine Vielzahl anderer Parameter, um die Menge der zu kopierenden Dateien zu minimieren. Diese Parameter sind jedoch meist nicht nötig und werden daher an dieser Stelle vernachlässigt.

Die Logfunktion /LOG

Gerade für automatisierte Backups kann sich eine Logfunktion als nützlich erweisen, da dort nachgesehen werden kann, ob es zu Fehlern kam während des Backups oder was überhaupt gemacht wurde. Natürlich unterstützt Robocopy auch das Anlegen von Logdateien. Mit dem Parameter /LOG:[Dateiname] wird an der vorgegebenen Stelle eine Logdatei von Robocopy angelegt. Mit /LOG+:[Dateiname] wird eine vorhandene Logdatei fortgeführt. Sollte die Logdatei noch nicht existieren beim erstmaligen Ausführen der Befehlszeile, wird sie auch bei /LOG+:[Dateiname] neu angelegt. Wenn wir also unter C:Logs eine Logdatei des Kopiervorgangs anlegen wollen, muss die Befehlszeile wie folgt ausschauen:

robocopy "C:\Meine Musik" "D:\Backup\Meine Musik" /MIR /XF *.m3u /XD "C:\Meine Musik\Dokumente" /LOG+:C:\Logsmusik.log

Die normale Logfunktion von Robocopy schreibt allerdings jegliche Rückmeldung in die Logdatei, was diese sehr unübersichtlich gestaltet. Natürlich gibt es auch hier Parameter, die Abhilfe schaffen. Wenn noch ein /NP ergänzt wird, werden keine Fortschrittsinformationen in der Logdatei protokolliert. Mit /NFL werden Dateinamen nicht protokolliert, mit /NDL werden auch keine Verzeichnisse in die Logdatei eingetragen. Mit dem Parameter /NJH wird kein Auftragsheader in der Protokolldatei erzeugt, mit /NJS auch keine Zusammenfassung. Probieren Sie mit diesen Parametern am besten ein wenig aus.

Mit dem Parameter /TEE werden die Informationen sowohl in die Kommandozeile als auch in die Logdatei geschrieben. Mit /V können auch die Dateien protokolliert werden, die auf beiden Seiten identisch waren und daher übersprungen wurden.

Die Probierfunktion /L

Für alle, die erst einmal sehen möchten, was genau passieren würde, wenn Sie Robocopy mit den von Ihnen angegebenen Befehlen laufen lassen würden, bietet Robocopy eine Probierfunktion. Mit dem Parameter /L wird nur angezeigt, was Robocopy im Fall der Fälle tun würde. Ausgehend von unserem Beispiel müsste die Befehlszeile nun so aussehen:

robocopy "C:\Meine Musik" "D:\Backup\Meine Musik" /MIR /XF *.m3u /XD "C:\Meine Musik\Dokumente" /LOG+:C:\Logsmusik.log /L

Natürlich können alle zuvor genannten Parameter auch kombiniert werden. Eine mögliche Befehlszeile könnte also auch so aussehen:

robocopy "C:\Meine Musik" "D:\Backup\Meine Musik" /MIR /XF *.m3u /XD "C:\Meine Musik\Dokumente" /LOG+:C:\Logsmusik.log /NP /TEE /V /L

Die Monitor-Funktion /MON:n /MOT:n

Robocopy kann auch dauerhaft im Hintergrund werkeln. Dazu besitzt das Tool eine Monitor-Funktion, die mit zwei verschiedenen Parametern angesprochen werden kann. /MON:n bewirkt, dass Robocopy das Backup nach n Änderungen aktualisiert. Wenn Sie dort also eine 5 eintragen, wird Robocopy nach 5 Änderungen im Quellverzeichnis aktiv und aktualisiert Ihr Backup. /MOT:n lässt Robocopy nach n Minuten wieder aktiv werden. Wenn Sie /MON:n ohne Angabe von /MOT:n verwenden, setzt Robocopy als Zeitspanne eine Minute.

Sie können die Monitor-Funktion auch nur zu einer bestimmten Uhrzeit laufen lassen, dafür ist der Parameter /RH zuständig. Die Eingabe erfolgt im Format /RH:hhmm-hhmm. Um die Monitor-Funktion bspw. nur zwischen 18 und 20 Uhr laufen zu lassen, könnte eine Befehlszeile aussehen wie folgt:

robocopy "C:\Meine Musik" "D:\Backup\Meine Musik" /MIR /XF *.m3u /XD "C:\Meine Musik\Dokumente" /LOG+:C\:Logsmusik.log /NP /TEE /V /MON:2 /RH:1800-2000

Ausgewählte Parameter im Überblick

/COPY:copyflag[s] Standard-Einstellung: /COPY:DAT
D: Datei-Inhalte S:NTFS ACLs
A: Attribute O: Besitzer
T: Zeitstempel U: Überwachungsinfo
/SEC äquivalent zu /COPY:DATS
/COPYALL kopiert alle Datei-Informationen – äquivalent zu COPY:DATSOU
/NOCOPY keinerlei Datei-Informationen werden kopiert
/E kopiert Unterverzeichnisse, auch die leeren
/PURGE löscht Dateien und Verzeichnisse im Ziel, die in der Quelle nicht mehr existieren
/MIR Spiegelung anlegen - Zusammenfassung von /E und /PURGE
/MON:n nach n Änderungen wird Robocopy automatisch wieder aktiv
/MOT:n nach n Minuten wird Robocopy automatisch wieder aktiv
/RH:hhmm-hhmm Zeitraum, in dem Robocopy aktiv wird
/XF bestimmte Dateitypen von der Spiegelung ausschließen
/XD bestimmte Verzeichnisse von der Spiegelung ausschließen
/R:n Es werden n Versuche unternommen, den Vorgang erfolgreich abzuschließen (Standard: 1000000)
/W:n die Wartezeit nach einem erfolglosen Kopiervorgang (Standard 30)
/L den Probiermodus von Robocopy aktivieren
/LOG: bei jedem Syncvorgang eine neue Logdatei anlegen lassen
/LOG+: eine bestehende Logdatei fortführen
/NP keine Fortschrittsinformationen anzeigen
/TEE Informationen sowohl auf dem Bildschirm als auch in der Logdatei ausgeben

Robocopy im Netzwerk

Robocopy kann natürlich auch im Netzwerk verwendet werden. Es unterstützt dabei auch UNC-Pfade. Ein großer Vorteil, da man einem Netzlaufwerk nicht erst einen Laufwerksbuchstaben zuweisen muss, damit Robocopy eingesetzt werden kann. Um jedoch im Netzwerk ein Backup anlegen zu können, muss sichergestellt sein, dass das Benutzerkonto, welches Robocopy ausführt, Zugriff auf die Freigabe hat, ohne sich anmelden zu müssen. Robocopy selbst bietet keine Option, Benutzerdaten mit zu übertragen. Es gibt verschiedene Möglichkeiten, dies zu gewährleisten:

  1. Auf dem freigebenden PC existiert ein identisches Benutzerkonto. Hier ist keine Eingabe von Benutzerdaten notwendig. Wenn die Rechner in derselben Domain stehen, gilt dies auch.
  2. Wenn kein identisches Konto existiert, ist es ab XP aufwärts die einfachste Lösung, sich einmalig manuell am freigebenden PC anzumelden und die Anmeldedaten speichern zu lassen. Im Grundsatz muss eine Befehlszeile zum Anlegen eines Backups auf einer Freigabe aussehen wie folgt:
    robocopy [quelle] [\serversharepath] /MIR /Z
    Das /Z, welches nur im Netzwerk funktioniert, kopiert die Dateien im "restartable mode". Sollte eine Übertragung scheitern, aus welchem Grund auch immer, kann Robocopy die Datei bei der nächsten Ausführung fortsetzen, ohne nochmals die komplette Datei kopieren zu müssen. Robocopy hat natürlich auch einen Parameter, um Bandbreite im Netzwerk zu sparen. Dieser lautet: /IPG:n. Nach jedem erfolgreich übertragenen Paket pausiert Robocopy hier für die in Millisekunden angegebene Zeit.
  3. Eine Ausnahme bildet Windows 2000, da hier die Anmeldedaten nicht dauerhaft gespeichert werden können. Es gibt eine alternative Lösung über eine Batchdatei und die Verwendung von net use. Mittels net use müssen Sie sich zunächst am freigebenden PC anmelden, dann Robocopy ausführen und hinterher mit net use die Verbindung wieder trennen. Der Quelltext der Batchdatei müsste dabei aussehen wie folgt:
    net use \Servername\Freigabe
    robocopy [Quelle] [Ziel]
    net use \Servername\Freigabe /del
  4. Voraussetzung: Man darf auf die Freigabe zugreifen, ansonsten kann man den Schalter /USER benutzen.
    net use \Servername\Freigabe /USER:[username]
    robocopy [Quelle] [Ziel]
    net use \ServernameFreigabe /del

    Wer auch noch das Passwort übergeben möchte, kann das auch tun, muss dabei aber in Kauf nehmen, dass das Passwort im Klartext in der Batchdatei steht.
    net use \Servername\Freigabe /USER:[username] [passwort]
    robocopy [Quelle] [Ziel]
    net use \Servername\Freigabe /del

Praktische Beispiele

Nachfolgend möchten wir Ihnen ein paar konkrete Anwendungsbeispiele zeigen, wie wir sie selber benutzen. Wir erstellen regelmäßig Kopien wichtigster Daten, unter anderem auch vom Thunderbird-, Firefox- und Opera-Profil. Zwar haben wir die Profile schon auf andere Partitionen verschoben, dennoch haben wir gerne ein Backup, falls man durch Änderungen am Profil selbiges mal zerstört.

Backup des Thunderbird-Profils

Um das Profil von Thunderbird zu sichern, welches unter L:ProfilesThunderbird liegt, verwenden wir folgende Befehlszeile:

robocopy "L:\Profiles\Thunderbird" %bckdrv%%bckdir%Thunderbird_Profil /MIR /LOG+:backup.log /NP

Diese Befehlszeile bewirkt, dass das komplette Thunderbird-Profil nach J:BackupThunderbird_Profil gespiegelt wird. Da diese Befehlszeile innerhalb einer Batchdatei steht und wir gerne mit variablen Pfadangaben arbeiten, haben wir zu Beginn der Batch die Variablen %bckdrv% und %bckdir% deklariert.

set bckdrv=J:
set bckdir=Backup

Backup des Firefox-Profils

Das Firefox-Profil liegt unter L:ProfilesFirefox. Um dieses Profil zu sichern, verwenden wir folgende Befehlszeile:

robocopy "L:\Profiles\Firefox\profile" %bckdrv%%bckdir%Firefoxprofile /MIR /LOG+:backup.log /NP /XD "L:\Profiles\Firefox\profile\cache" "L:\Profiles\Firefox\profile\Cache.Trash"

Im Einzelnen bedeutet obige Befehlszeile: Spiegele das Verzeichnis L:ProfilesFirefoxprofile nach J:BackupFirefoxprofile. Überspringe dabei die Ordner "L:ProfilesFirefoxprofilecache" und "L:ProfilesFirefoxprofileCache.Trash". Außerdem führe die Datei backup.log fort.

Backup des Opera-Profils

Das Opera-Profil befindet sich unter L:ProfilesOpera. Die dazugehörige Befehlszeile muss also lauten:

robocopy "L:\ProfilesßOperap\rofile" %bckdrv%%bckdir%Operaprofile /MIR /LOG+:backup.log /XD "L:ßProfilesßOpera\profile\cache4"

Wiederum lassen wir den Cache nicht kopieren, da dieser nicht wirklich für ein funktionierendes Profil vonnöten ist.

Eine kleine Beispieldatei

Hier können Sie eine kleine Batchdatei sehen, die die eben erwähnten Profile per Knopfdruck sichern kann. Diese Batchdatei haben wir in den Taskplaner eingebunden und eben aufgrund dieser Tatsache müssen wir zunächst auf das Laufwerk und den Pfad wechseln, in dem dieses Script steht. In diesem Ordner wird auch die entsprechende Logdatei angelegt.

@echo off
set bckdrv=J:
set bckdir=Backup
set scriptdrv=L:
set scriptdir=Backupscripts
%scriptdrv%
cd %scriptdir%
REM Thunderbird
robocopy "L:\Profiles\Thunderbird" %bckdrv%%bckdir%Thunderbird_Profil /MIR /LOG+:backup.log /NP
REM Firefox
robocopy "L:\Profiles\Firefox\profile" %bckdrv%%bckdir%Firefoxprofile /MIR /LOG+:backup.log /XD "L:\Profiles\Firefox\profile\cache" "L:\Profiles\Firefox\profile\Cache.Trash"
REM Opera
robocopy "L:\Profiles\Opera\profile" %bckdrv%%bckdir%Operaprofile /MIR /LOG+:backup.log /XD "L:\Profiles\Opera\profile\cache4"

Automatisierung über den Taskplaner

Wenn Sie die Batchdatei in den Taskplaner einbinden, kann das Backup regelmäßig automatisiert aktualisiert werden. Beachten Sie bitte, dass Ihr Benutzerkonto unter Windows über ein Passwort verfügen muss, damit der Taskplaner verwendet werden kann.

Grafische Oberflächen (GUI) zu Robocopy

Wem die Tipperei in der Kommandozeile zu umständlich ist oder wer sich nicht selber eine Batch schreiben möchte, für den gibt es an dieser Stelle drei Alternativen.

YARCGUI

YARCGUI hat alle Optionen von Robocopy implementiert und mit Hilfen versehen. Sie können beliebig viele Robocopyaufträge speichern. Die Erstellung von Aufträgen ist sehr einfach und direkt aus YARCGUI ausführbar. Dabei können Sie Quelle und Ziel mit einem Mausklick tauschen. Ein Protokoll zeigt an, was genau ausgeführt würde. Das Konsolenfenster von Robocopy selbst kann dabei unterdrückt werden.

yarcgui

yarcgui

Ein weiteres Feature ist die Einbindung in den Taskplaner, so dass Backupaufträge auch automatisiert und zeitgesteuert ausgeführt werden können.

Copyrite XP

Copyrite XP bietet eine einfache Möglichkeit, ein Script für Robocopy zu generieren, welches Sie später anklicken können. Copyrite XP bietet Zugriff auf so gut wie alle Robocopy-Parameter und ist damit eine sehr gute grafische Oberfläche zu dem Kommandozeilentool.

Registerkarte General

Unter Source Path können Sie festlegen, welches Verzeichnis als Quelle dienen soll. Unter Destination Path legen Sie das Verzeichnis fest, welches als Ziel dienen soll. Wenn Sie den Haken "Match Destination Folder to Source Folder" setzen, wird an das Zielverzeichnis noch der Ordnername der Quelle angehangen.

alt

Copyrite XP: Registerkarte General

Registerkarte Copy Options 1

Legen Sie hier fest, ob Unterverzeichnisse berücksichtigt werden sollen, welcher Modus benutzt wird und welche Dateiinformationen mit kopiert werden sollen. Des Weiteren können Sie einstellen, zu welchen Zeiten Robocopy laufen darf und ob im Netzwerk Pausen beim Kopieren eingelegt werden sollen.

alt

Copyrite XP: Registerkarte Copy Options 1

Registerkarte Copy Options 2

Die obersten drei Einstellungen dieser Registerkarte sind am ehesten die Einstellungsmöglichkeiten für Systemadministratoren, da hier die weiter oben angesprochenen Parameter /SEC /DATSOU und /NOCOPY gesteuert werden können. Im nächsten Kasten können die Optionen /PURGE und /MIR angesprochen werden. Meistens wird man wohl /MIR brauchen, das entspricht dem Haken bei "Mirror a Directory Tree". Der nächste Abschnitt steuert die Monitor-Funktion von Robocopy. Die unteren Einstellungsmöglichkeiten werden an dieser Stelle nicht weiter erläutert.

alt

Copyrite XP: Registerkarte Copy Options 2

Registerkarte File Selection Options 1

Hier können Sie festlegen, welche Dateiattribute berücksichtigt und welche nicht berücksichtigt werden sollen. Wenn Sie an der Voreinstellung "None" nichts ändern, werden alle Dateien mit allen Attributen kopiert.

alt

Copyrite XP: Registerkarte File Selection Options 1

Registerkarte File Selection Options 2

Die interessantesten Möglichkeiten auf dieser Seite sind wohl die Felder "Exclude the Following File Names/Wildcards/Paths" und "Exclude the Following Directory Names/Paths". Diese beiden Felder entsprechen den Parametern /XF und /XD. Die weiteren Einstellungsmöglichkeiten sind an dieser Stelle für ein normales Backup eher zu vernachlässigen.

alt

Copyrite XP: Registerkarte File Selection Options 2

Registerkarte Retry

Hier können Sie festlegen, wie oft und in welchem Abstand ein fehlgeschlagener Kopiervorgang wiederholt werden soll. Im Gegensatz zu den Default-Einstellungen von Robocopy (/R:1000000 /W:30) setzt die GUI beide Werte per default auf 0. Wer andere Werte benutzen möchte, kann sie hier entsprechend einstellen. Wenn Sie noch einen Haken bei "Save As Default" setzen, wird Copyrite XP die hier eingestellten Werte auch bei der Erstellung eines weiteren Scripts benutzen.

alt

Copyrite XP: Registerkarte Retry

Registerkarte Logging

Hier können die Log-Optionen von Robocopy eingestellt werden. Die erste Einstellungsmöglichkeit "Don’t Display % Copied" entspricht dem Parameter /NP. In dem weißen Kasten kann der Ort der Logdatei definiert werden. Auch kann eingestellt werden, ob die Logdatei jedesmal neu angelegt oder fortgeführt werden soll. Der Haken bei "Output to console window, as well as the log file" entspricht dem Parameter /TEE. Auch auf die Probierfunktion /L haben Sie hier Zugriff. Dazu setzen Sie einfach einen Haken bei "List only – don’t copy, timestamp or delete any files".

alt

Copyrite XP: Registerkarte Logging

Registerkarte Job

Unter dieser Registerkarte haben Sie die Möglichkeit, die gewählten Einstellungen als Batchdatei zu speichern, die Sie entweder manuell anklicken oder in den Taskplaner schalten können.

Wenn Sie den Befehl nur einmalig verwenden möchten, klicken Sie unten auf den Button "Copy", dies startet eine Kommandozeile mit den entsprechenden Robocopy-Parametern, die Sie in Copyrite XP definiert haben.

alt

Copyrite XP: Registerkarte Job

SyncToy

Auch Microsoft bietet seit geraumer Zeit eine vergleichsweise spartanische Oberfläche zu Robocopy an. Diese nennt sich SyncToy. Allerdings bietet auch das SyncToy alle Möglichkeiten, ein Backup zu erstellen oder zu aktualisieren. Zunächst müssen Sie die zu vergleichenden Ordner angeben. Klicken Sie dazu auf den Button "Create New Folder Pair".

alt

SyncToy

Im folgenden Fenster können Sie den Modus einstellen, welchen SyncToy zum Vergleichen der Verzeichnisse anwenden soll.

  • Synchronize: Neue und aktualisierte Dateien werden auf beiden Seiten kopiert. Umbenannte und gelöschte Dateien werden ebenfalls auf beiden Seiten synchronisiert.
  • Echo: Neue und aktualisierte Dateien werden von links nach rechts kopiert. Umbenannte und gelöschte Dateien werden auf der rechten Seite ebenfalls synchronisiert. Echo entspricht der Option /MIR von Robocopy.
  • Contribute: Neue und aktualisierte Dateien werden von links nach rechts kopiert. Umbenannte Dateien auf der linken Seite werden auf der rechten Seite ebenfalls umbenannt. Löschungen erfolgen nicht.
alt

SyncToy

Im letzten Fenster schließlich können Sie dem Folder Pair einen beschreibenden Namen geben.

alt

SyncToy

Nachfolgend wird Ihnen eine Zusammenfassung des Folder Pairs angezeigt.

alt

SyncToy: Zusammenfassung
Klick aufs Bild zum Vergrößern

Über den Link "Change Options" können Sie bspw. festlegen, ob nur bestimmte Dateitypen kopiert werden sollen oder ob bestimmte Dateitypen nicht kopiert werden sollen.

alt

SyncToy: Change Options
Klick aufs Bild zum Vergrößern

Über den Link "Select Subfolders" können Sie bestimmen, welche Verzeichnisse bei der Backup-Erstellung nicht berücksichtigt werden sollen.

alt

SyncToy: Subfolders
Klick aufs Bild zum Vergrößern

Über den Button "Preview" sprechen Sie quasi den Probiermodus /L von Robocopy an. Hier wird Ihnen nur angezeigt, was genau das Backup erledigen würde, wenn Sie auf den Button "Run" klicken. Im Anschluss an die Vorschau haben Sie auch gleich die Möglichkeit, den Button "Run" zu betätigen.

alt

SyncToy: Preview
Klick aufs Bild zum Vergrößern

alt

SyncToy: Run
Klick aufs Bild zum Vergrößern

63 Bewertungen

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne Ø 4,43
Robocopy – der Kopier-Gigant
Loading...

46 Antworten auf “Robocopy – der Kopier-Gigant”

  1. Reiner Kernbach

    hallo,
    wie kann ich feststellen, dass der Kopiervorgang beendet ist?

    Dank im Voraus
    Reiner

  2. Marko Poser

    hallo

    bei mir soll immer auf einen USB Stick die daten Kopiert bzw aktuallisiert werden. Das Quelllaufwerk ist zb ein server das ziel soll immer der USB sein egal welcher Computer egal welcher Laufwerksbustabe. aber immer das laufwerk von wo robocopy gestartet wird.

    Hintergrund.
    ich gebe allen meinen Kunden einen USB Stick mit einen Softwarestand. über eine bat Datei soll der USB aktualisiert werden ohne das ich den Laufwerksbustaben kenne.

    geht das?

    danke im Voraus
    mposi

  3. Oliver

    Eine Frage an die Experten unter Euch. Die Robocopy-Option /IPG:n (ms), welche zur Begrenzung der Bandbreite im Netz dient, soll konfiguriert werden. Wir haben hier ein Gigabit-Netzwerk und wollen die Bandbreite für die Robocopy-Aktion auf max. 1/3, also ~300 Mbit begrenzen, damit die anderen Rechner im Gebäude nicht zu sehr unter der Netzwerklast leiden. Welche Anzahl an Milisekunden muss ich eintragen, bzw. gibt es eine Formel, wie ich mir den Wert ausrechnen kann?

    Danke schonmal
    Oliver

  4. Stefan

    Im Ordner Onedrive existiert eine Datei:
    .849C9593-D756-4E56-8D6E-42412F2A707B
    Wie kann man diese vom Kopiervorgang ausschließen?
    /XD .849C9593-D756-4E56-8D6E-42412F2A707B funzt leider nicht !
    Danke

  5. NEWBEE

    Ich komme da nicht so ganz mit klar.
    Meine bisherige datensicherung sieht wie folgt aus:
    XCOPY „QUELLE“ „ZIEL“ /D /E /Y /I
    Was muss wie muss das bei Robocopy aussehen, es soll nichts gelöscht werden!, /mir kommt nicht in frage!
    Wäre echt klasse wenn mir da einer helfen könnte.

  6. Michael Sy.

    @manfred baack: Anwort auf die Frage: „Gibt es eine maximale Länge für die Parameter von Robocopy?“

    In einem gewissen Sinne gibt es keine maximale Parameterlänge, denn man kann über die Option /JOB: eine Datei spezifizieren, die alle oder weitere Aufruf-Parameter enthält. (Nutze ich z.B. für eine längere Liste von auszuschließenden Verzeichnissen und Dateien.)

  7. Michael Sy.

    @Nr5: Na ja, mir fällt auf die Schnelle nur eine getrickste Lösung ein, die aber per Batch-Datei automatisierbar ist. Es gibt unter ROBOCOPY die Optionen /MOVE /MAX:.. und /MIN… (alle Optionen abrufbar mittels „robocopy /?“) . /MOVE verschiebt Dateien. Per /MAX und /MIN können Dateigrößen selektiert werden. Per „*.jpg“ wäre die Dateiart zu selektieren. Nach dem Verschieben das (ggf. temporär) angelegte Zielverzeichnis einfach komplett löschen – voila!

  8. Nr5

    Ich suche verzweifelt nach einer Lösung, um viele JPGs, best. Größe (evtl. auch von-bis) aus diversen Unterverzeichnissen zu löschen.

  9. Thomas Weier

    Hey Leute, jeder der etwas Hilfe bei Auswahl aller Paramter für die Programmierung mit RoboCopy braucht kann ich die GUI
    YARCGUI vom deutschen Entwickler Thomas Wilkes nur sehr empfehlen.
    Im Business Umfeld würde Ich Backup/Kopier/Verschiebe Operationen jedoch aus Garantie-Gründen selbst per RoboCopy CMD starten, mir aber vorher die Paramter in YARCGUI zusammenbauen.

  10. Johann Hastreiter

    Wie kann ich mit Robocopy Dateien aus einem Verzeichnis in das
    Windowsverzeichnis kopieren?

    Vielen Dank

    J. Hastreiter

  11. Tom Stein

    Warum wird immer wieder behauptet, dass xcopy nicht inkrementell arbeiten könnte? Sowohl mit /M als auch mit /D kann ein inkrementelles Backup erstellt werden. Bei /M darf natürlich kein anderes Programm das Archiv-Attribut löschen, und /D führt kein Purge durch. Aber inkrementell sind beide, und ein Purgen ist nicht immer erwünscht. Und auch Robocopy kann nur im Netzwerk abgebrochene Übertragungen mitten in einer Datei wieder aufnehmen – bei einem lokalen Datenträger kann es diesbezüglich nicht mehr als xcopy.

  12. PCDFlocke

    Xcopy kann bspw nicht inkrementell aktualisieren. Robocopy aktualisiert immer inkrementell. Gerade bei großen Datenmengen ein Vorteil.

  13. PCDFlocke

    /MIR spiegelt grundsätzlich. Ein solcher robocopy Befehl muss mit anderen Parametern umgesetzt werden. Die verfügbaren Parametern können mit robocopy /? abgerufen werden.

  14. Mike

    Wie wären die zusätzlichen Parameter für /MIR,
    wenn in der Quelle gelöschte Dateien NICHT im Backup gelöscht werden sollen?

  15. John Doe

    Hi
    Sehr guter Artikel. Kleine Anmerkung:
    set bckdrv=J:
    set bckdir=Backup
    %bckdrv%%bckdir%
    Ergibt nicht J:\Backup sondern J:Backup
    LG John

  16. Mike

    @Christian : In den Optionen wirst Du fündig :
    :: Wiederholungsoptionen:
    ::
    /R:n :: Anzahl von Wiederholungsversuchen bei fehlerhaften
    Kopiervorgängen. Der Standardwert ist 1 Million.
    /W:n :: Wartezeit zwischen Wiederholungsversuchen.
    Der Standardwert ist 30 Sekunden.

    /REG :: Speichert „/R:n“ und „/W:n“ in der Registrierung als
    Standardeinstellungen.

    /TBD :: Wartet darauf, dass Freigabenamen definiert werden
    (Wiederholungsfehler 67).

    Ergo setze als zusätzliche Flags einfach /R:3 /W:2

    Dies sorgt dafuer das 3x versucht wird, die Datei zu kopieren. Zwischen den Versuchen wird dann 2 Sekunden gewartet.
    Danach erscheint der Fehler in dem LogFile (sofern mit /LOG:DeinLogFile.txt definiert) sowie im Abschluss als Bericht.

  17. backtrace53

    Beim /mir Befehl muss man kein /purge angeben, da /mir bereits gelöschte Ordner der Quelle auch im Ziel löscht.

  18. PCDFlocke

    Schau dir mal die Optionen an, die du über robocopy /? erhältst.
    Auszug:
    /COPY:copyflag[s] :: what to COPY for files (default is /COPY:DAT).
    (copyflags : D=Data, A=Attributes, T=Timestamps).
    /DCOPY:T :: COPY Directory Timestamps.

  19. molirya

    Hallo Leute!
    Habe eine Frage die sich mit dem Programm RoboCopy / YARCGUI auskennen:
    Ich möchte Verzeichnisse und Dateien 1:1 sichern, wie folgt:
    – interne Festplatte zu externe Festplatte
    – USB-Stick zu USB-Stick
    – USB-Stick zu interne Festplatte
    – Video zu (interne/externe) Festplatte

    Eigentlich funtioniert das mit der Datenkopien mit der Option ‚/COPYALL‘, aber leider nicht ganz 1:1, denn die Verzeichnisse (Ordner) und Dateien haben unter ‚Erstelldatum‘ das aktuelle Datum und Uhrzeit und leider nicht die Originale (also von früher).

    Auch unter ‚Änderungsdatum‘ haben die Verzeichnisse das aktuelle Datum/Uhrzeit. Lediglich die Dateien haben unter ‚Änderungsdatum‘ das originale Datum/Uhrzeit.

    Wie kann ich RoboCopy/YARCGUI so einstellen, dass alle kopierte Verzeichnisse/Dateien die originale Angaben sowohl unter ‚Erstelldatum‘ als auch unter ‚Änderungsdatum‘ haben?

    Hoffe ich habe die Frage verständlich forumuliert.
    Schon mal vielen Dank im voraus für die hilfreiche beantwortung meiner Frage.

  20. PCDFlocke

    1.: Robocopy kann lange Dateinamen kopieren.
    2.: Der Schalter /ZB kann auch geöffnete Dateien kopieren.

  21. Friedhelm Peters

    Kann Robocopy auch Dateinamen länger als 260 Zeichen (Mit Ordnerstruktur) kopieren und bis zu welcher Länge (NTFS hat ja bis 30000 Zeichen länge)?
    Kopiert Robocopy auch Dateien, die gesperrt oder in Benutzung sind?

  22. Christian

    Hallo,

    wie kann ich bei robocopy die bei der Übertragung entstehende Fehlermeldung Fehler 5 (eine Zugriffsverweigerung) auf Recycle.bin übergehen. Robocopy bleibt ansonsten in einer Schleife gefangen und wird nicht beendet / wird nicht forgesetzt.

  23. Jappy56

    Robocopy x026 liefert immer 0 als Returncode zurück, gibt es eine aktuellere Version oder eine Lösung?

  24. Romano

    @Peter wenn du so gut skripten würdest wie dumme Kommentare abgeben, könnte man hier wohl sicher ein kompliziertes Robocopy-Beispiel für eine unternehmensweite Sicherung finden.

  25. Peter

    Es heißt nicht „Kopier Gigant“, sondern „Kopiergigant“ oder ggfs. auch „Kopier-Gigant“.

  26. GWachsmuth

    Es lassen sich ganz einfach Batch Dateien erstellen die dann über die Aufgabenplanung, bzw. den Taskplaner gestartet werden können.
    Zuerst mit Synctoy ein Ordnerpaar erstellen.
    Der Aufruf erfolgt dann wie folgt:
    SyncToyCmd.exe -R Name_des_Ordnerpaares

  27. PCDMicha

    Zur anderen Frage: Ich weiß nicht, ob das Sync-Toy auch Befehlszeilenbefehle entgegenimmt, also sich mit einem Profil starten lässt. Dann könnte man das über die Aufgabenplanung von Windows zeitgesteuert ausführen lassen.

  28. PCDMicha

    Wenn ein Sync gewählt wurde, welcher Quelle und Ziel 1:1 spiegelt, sollten am Ziel die Daten in der Tat gelöscht werden. Einfach mal probieren.

  29. Katrin

    Hallo,

    kann man bei Synctoy auch einen automatischen Ablauf einstellen ? z.B. das bei jedem herunterfahren synchronisiert wird ? Oder Täglich um 15 Uhr oder sowas ?

    Viele Grüße
    Kathy

  30. ESPe

    Wie sieht den die Lage aus, wenn die Festplatte des Quellverzeichnisses kaputt geht? Wird dann das Zielverzeichnis gelöscht oder was passiert mit dem Backup?

    Vielen Dank im Voraus
    Enrico

  31. Kalle

    /LOG+: C:

    im oberen Teil dürft ihr keinen Abstand zwischen log+: c:\ lassen, sonst kommt es zum Fehler…

  32. PCDFlocke

    Robocopy ist nicht unbedingt für das Kopieren einzelner Dateien gedacht. Dafür gibt es xcopy.
    Dennoch ist es auch mit Robocopy möglich einzelne Dateien zu kopieren.
    Die Syntax lautet dann: robocopy „Verzeichnis1“ „Verzeichnis2“ Dateiname

  33. Johann Hastreiter

    Hallo,

    wieso funktioniert dieser Copy Befehl nicht?
    Kann robocopy keine einzelnen Dateien kopieren?

    robocopy „c:\Dokumente und Einstellungen\Nemo\AppData\Roaming\Alltags-Programme\Adressen\Adressen.dat“ „e:\Paperport-Dokumente\Persoenliche-Unterlagen\Hans\Telefonbuch“ /E

    Vielen Dank

    Johann Hastreiter

  34. whoami

    Xcopy kann sehr wohl inkrementelle Backups durchführen:
    – mit /D (ohne Zeitangabe; am besten mit /Y /R) werden nur neuere Dateien kopiert
    – mit /M bzw. /A (existieren auch in Robocopy) wird das Archivattribut verwendet.
    Beide Möglichkeiten gibt es seit mindestens Windows 2000.

Hinterlasse eine Antwort

(wird nicht veröffentlicht)

Nutzungsrichtlinien beachten