Robocopy ist eines der am häufigsten verwendeten Befehlszeilenprogramme zum Kopieren großer Datenmengen in Windows. Es ist so ein beliebtes Werkzeug, weil, wie mächtig es ist. Aber mit all dieser Kraft kommt Komplexität. In diesem Handbuch werden wir all diese Komplexität aufschlüsseln und ein vollständiges Tutorial zur Verwendung dieses nützlichen Tools bereitstellen.
Robocopy ist ein Windows-Befehlszeilenprogramm, das seit Windows NT verfügbar ist. Es ist ein Ersatz für das weniger vielseitige xcopy-Dienstprogramm. Sie können einen Laufwerkspfad oder Serverpfad zum Kopieren / Verschieben von Dateien an einer Eingabeaufforderung angeben.
Die Version von Robocopy zum Zeitpunkt dieses Schreibens ist bis zu 10.0.18. Dies ist die Version, an der ich meine Tests durchgeführt habe.
Robocopy bietet eine Reihe von Funktionen, die Sie nutzen können, um effiziente und schnelle Dateikopien und -verschiebungen durchzuführen. Es kann:
- Kopieren von Dateien über ein Netzwerk mit Resume-Funktionen
- Kann NTFS-Knotenpunkte überspringen, die Fehler verursachen, die typischerweise aus Endlosschleifen resultieren
- Kann Datei- und Verzeichnisattribute kopieren, die Zeitstempel beibehalten
- Kann NTFS-Berechtigungen, Eigentümer und Überwachungsinformationen kopieren
- Kann Verzeichniszeitstempel kopieren
- Kann kopieren Sie Dateien im ‚Backup‘ -Modus, um sicherzustellen, dass Dateien kopiert werden, auch wenn dem Administrator diese Rechte verweigert wurden
- Automatische Wiederholungsversuche
- Kann zwei Ordner synchronisieren
- Ist intelligent genug, um bereits kopierte Dateien zu überspringen
- Kann Pfade kopieren, die größer als das Pfadlimit von 256 Zeichen sind
- Führen Sie mithilfe der Multithreading-Fähigkeit asynchrone Kopien durch.
- Gibt standardisierte Exit-Codes zur Verwendung in Skripten zurück
Wie Sie sehen können, gibt es viel zu kopieren. Ich wollte alles abdecken, was Sie über dieses praktische Tool wissen müssen.
Inhaltsverzeichnis
Allgemeine Robocopy-Syntaxreferenz
Warum so ein langer Blogbeitrag zu einem einzelnen Dienstprogramm? Genießen Sie einfach Ihre Augen auf den Tabellen unten. Sie haben viele Möglichkeiten, Dateien mit robocopy zu kopieren oder zu verschieben! Weitere Optionen finden Sie in den einzelnen Abschnitten.
Diese Tabellen wurden aus der Hilfesyntax erstellt, die von robocopy /?
zurückgegeben wurde. Sie wurden in aussagekräftigere Abschnitte unterteilt, im Laufe der Zeit hinzugefügt und bereinigt, um nützlichere Informationen bereitzustellen.
Quelloptionen
Schalter | Erklärung | Standardverhalten | Äquivalenter Schalter | Anmerkungen |
/ S | Unterordner kopieren | |||
/ E | Unterordner einschließlich leerer Unterordner kopieren | |||
/ KOPIEREN: | Kopieroptionen | /KOPIEREN:DAT | D = Daten, A = Attribute, T = Zeitstempel S = Sicherheit = NTFS ACLs, O = Besitzer info, U = aUditing info. Dateidaten (D) enthalten immer Dateizeitstempel (T) | |
/ SEC | Dateien mit Sicherheit kopieren | / KOPIE: DATS | ||
/ DCOPY:T | Verzeichniszeitstempel kopieren | |||
/ COPYALL | ALLE Dateiinformationen kopieren | / COPY:DATSOU | Dadurch wird verhindert, dass Offlinedateien dehydriert werden, und stattdessen das Tag der Datei kopiert (zumindest auf emc VNX / Unity-Systemen). Dies ist nicht offiziell dokumentiert! Wenn Sie dies benötigen (Grund, warum ich dieses Problem gefunden habe), können Sie die ACLs nicht entlang Ihrer Dateien kopieren. KREDIT: Monsieurx (Reddit) | |
/ NOCOPY | Kopieren KEINE Dateiinformationen | nützlich mit /PURGE | ||
/ A | Kopieren Sie nur Dateien mit dem Archivattributsatz | |||
/ M | wie /A , aber Archivattribut aus Quelldateien entfernen | |||
/ LEW:n | Kopieren Sie nur die obersten n Ebenen des Quellbaums | |||
/ MAXAGE: n | Maximales Dateialter – Dateien ausschließen, die älter als n Tage / Datum sind | |||
/ MINAGE: n | Mindestdateialter – Dateien ausschließen, die neuer als n Tage / Datum sind | Wenn n < 1900 dann n = Anzahl der Tage, sonst n = JJJJMMTT Datum | ||
/ FFT | FAT-Dateizeiten annehmen | 2- zweite Datum / Uhrzeit Granularität. Dies ersetzt NTFS-Zeitstempel. Scheint zuverlässiger zu sein, wenn über ein Netzwerk übertragen wird. | ||
/256 | Sehr langer Pfad deaktivieren (> 256 Zeichen) Unterstützung |
Zieloptionen
Schalter | Erklärung | Standardverhalten | Äquivalenter Schalter | Anmerkungen |
/ A+: | Dateiattribute für Zieldateien festlegen + hinzufügen | |||
/ A-: | Dateiattribute für Zieldateien entfernen | |||
/ FAT | Erstellen Sie Zieldateien mit 8.3 Nur FAT-Dateinamen | |||
/ CREATE | Verzeichnisbaumstruktur erstellen + Nur Dateien mit null Länge | |||
/ DST | Kompensieren für eine stunde DST zeit unterschiede |
Kopieroptionen
Schalter | Erklärung | Standardverhalten | Äquivalenter Schalter | Anmerkungen |
/ L | Nur Dateien auflisten | Keine Dateien kopieren, zeitstempeln oder löschen | ||
/ MOV | Dateien verschieben | Nach dem Kopieren aus der Quelle löschen | ||
/ VERSCHIEBEN | Dateien und Verzeichnisse verschieben | Nach dem Kopieren aus der Quelle löschen | ||
/ sl | Kopieren Datei symbolische Links anstelle des Ziels | |||
/ Z | Dateien im neustartbaren Modus kopieren | Überlebe ein Netzwerk glitch | ||
/ B | Dateien im Sicherungsmodus kopieren | |||
/ J | Kopieren mit ungepufferten E /A | Empfohlen für große Dateien | ||
/ NOOFFLOAD | Kopieren von Dateien ohne Verwendung des Windows Copy Offload-Mechanismus | https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/hh831628( v=ws.11) | ||
/ EFSRAW | Kopieren Sie alle verschlüsselten Dateien im EFS RAW-Modus | |||
/ TIMFIX | Fix Dateizeiten für alle Dateien, auch übersprungene Dateien | |||
/ XO | Ausschließen älter | wenn die Zieldatei vorhanden ist und das gleiche Datum oder neuer als die Quelle ist, überschreiben Sie sie nicht. | ||
/ XC | Geänderte Dateien ausschließen | |||
/ XN | Neuere Dateien ausschließen | |||
/ XX | Dateien ausschließen, die im Ziel, aber nicht in der Quelle vorhanden sind | /XX | ||
/ XF-Datei … | Dateien ausschließen, die mit Vornamen / Pfaden / Platzhaltern übereinstimmen | |||
/ XD dirs … | Schließt Verzeichnisse aus, die mit angegebenen Namen/Pfaden übereinstimmen. | / XF und /XD können in Kombination verwendet werden z.B. ROBOCOPY c:\source d:\dest /XF *.Dok *.xls /XD c:\unwanted /S | ||
/ IA: | Include-Dateien mit einem der angegebenen Attribute | |||
/ XA: | Dateien mit einem der angegebenen Attribute ausschließen | |||
/ IM | Geänderte Dateien überschreiben. Dazu gehören die gleichen Dateien mit unterschiedlichen Zeiten. | |||
/ IS | Dateien überschreiben, auch wenn sie bereits identisch sind | |||
/ ES | Enthält optimierte Dateien | |||
/ XJ | Verbindungspunkte von Quelle ausschließen | /XJ | ||
/ XJD | Verbindungspunkte aus Quellverzeichnissen ausschließen | |||
/ XJF | Verbindungspunkte von quelldateien | |||
/ MAX: n | Dateien ausschließen, die größer als n Byte sind | |||
/ MIN: n | Dateien ausschließen, die kleiner als n Byte sind | |||
/ MAXLAD: n | Dateien ausschließen, die seit n nicht verwendet wurden | |||
/ MINLAD:n | Seit n verwendete Dateien ausschließen | Wenn n < 1900 dann n = n Tage, sonst n = JJJJMMTT Datum | ||
/ MIR | Spiegeln eines Verzeichnisbaums | / SPÜLUNG /E | ||
/ PURGE | Zieldateien/-ordner löschen, die im Quellcode nicht mehr vorhanden sind | |||
/ XL | Ausschließen von Dateien, die in der Quelle, aber nicht im Ziel vorhanden sind | |||
/ SECFIX | Robocopy /secfix behebt Datei sicherheit für alle Dateien, auch übersprungene Dateien. | Geben Sie den Typ der Sicherheitsinformationen an, die Sie kopieren möchten, indem Sie auch eine der folgenden Optionen verwenden: /COPYALL /COPY:O /COPY:S /COPY:U /SEC | ||
/ ZB | Verwenden Sie den neustartbaren Modus; Wenn der Zugriff verweigert wird, verwenden Sie den Sicherungsmodus |
Überwachungsoptionen
Schalter | Erklärung | Standardverhalten | Äquivalenter Schalter | Anmerkungen |
/ R:n | Anzahl der Wiederholungsversuche bei fehlgeschlagenen Kopien | /R:1000000 | Versuchen Sie immer, diese Option festzulegen. Ich empfehle, dies auf 10-20 zu setzen, um keine Zeit mit dem erneuten Versuch zu verschwenden. | |
/ W:n | Wartezeit zwischen Wiederholungen | /W:30 | Versuchen Sie immer, diese Option auf eine niedrigere Zahl zu setzen, um es schneller zu wiederholen. Ich schlage vor, 5-10. | |
/ REG | Speichern Sie /R:n und /W:n in der Windows-Registrierung als Standardeinstellungen | |||
/ RH:hhmm-hhmm | Zeiten, zu denen neue Kopien gestartet werden können | |||
/ TBD | Warten Sie, bis die Freigabenamen definiert sind | wiederholungsfehler 67 | ||
/ PF | Überprüfen Sie die Laufstunden pro Datei (nicht pro Durchgang) | |||
/ MON: n | Erneut ausführen, wenn mehr als n Änderungen angezeigt werden | |||
/ TÜV:m | In m Minuten erneut ausführen, falls geändert |
Robocopy-Verhalten verstehen
Ich habe Sie jetzt mit allen möglichen Syntaxoptionen, die Ihnen zur Verfügung stehen, völlig umgehauen. Sehen wir uns nun die verschiedenen Kombinationen an, wie wir diese Syntax verwenden können.
Ich könnte Ihnen eine enorm lange Liste von Robocopy-Befehlen mit einer ständig wachsenden Anzahl von Schaltern zur Verfügung stellen. Aber ich denke, es ist besser, dir das Fischen beizubringen. Lassen Sie uns darüber sprechen, wie Sie all diese Optionen sinnvoll nutzen können.
Robocopy kopiert nur ganze Verzeichnisse
Jede Robocopy-Ausführung hat ein Quell- und ein Zielverzeichnis. Robocopy kopiert und verschiebt Dateien im gesamten Verzeichnis. Es ist nicht möglich, eine einzelne Datei explizit mit robocopy zu kopieren. Verwenden Sie dafür copy
oder Powershells Copy-Item
.
Sie können jedoch einzelne Dateien mit der richtigen Filterung robocopy , die Sie unten erfahren werden. Um eine einzelne Datei Datei robocopy, geben Sie die Quell- und Zielverzeichnisse unmittelbar durch den Dateinamen in der Quelle gefolgt.
> robocopy c:\src d:\dst copythisfile.txt
Syntax hängt von der Umgebung ab
Außerdem hängen die Optionen, die Sie robocopy zur Verfügung stellen, von der Umgebung ab. Sie müssen einige Fragen beantworten, wenn Sie herausfinden möchten, welche Optionen verwendet werden sollen.
- Werden Sie immer in ein leeres Verzeichnis kopieren?
- Sind möglicherweise bereits Dateien im Zielverzeichnis vorhanden?
- Kopieren Sie Terabyte Daten oder nur ein paar Megabyte?
- Werden Sie Dateien über ein Netzwerk oder lokal kopieren?
- …und mehr.
Wenn sich keine Dateien im Zieldateiverzeichnis befinden, sollten Sie sich nicht um Optionen kümmern, die Dateien überschreiben. Wenn Sie keine Dateien über das Netzwerk kopieren, machen Sie sich keine Sorgen über diese Optionen. Definieren Sie explizit Ihre aktuellen und potenziellen zukünftigen Umstände, in denen sich Ihre Umgebung befindet.
Standardoptionen erkennen
Robocopy verwendet standardmäßig viele Optionen. Sie können sie auswählen, indem Sie sich die obigen Tabellen ansehen. Es bietet auch eine praktische Ausgabe für jedes Mal, wenn Sie das Dienstprogramm ausführen.
Sie können unten sehen, dass beim Ausführen von Robocopy mit den grundlegendsten Optionen (Quell- und Zielordner) automatisch einige Optionen verwendet wurden. Das Verständnis des Standardverhaltens ist wichtig.
Referenzieren Sie die Optionen, die Sie in der Ausgabe sehen, mit den obigen Optionserklärungen und Sie werden genau verstehen, was robocopy unter der Decke macht.
Verstehen, was Robocopy-Befehle tun können
Wenn Sie copy
oder die Copy-Item
-Cmdlets von PowerShell verwendet haben, haben Sie wahrscheinlich eine Quelle und ein Ziel angegeben und Ihren Tag fortgesetzt. Es gibt nicht viele Optionen, die Sie dort konfigurieren können. Diese Robocopy-Befehle haben ein Standardverhalten.
Robocopy hingegen versteht viel mehr und gibt Ihnen die Flexibilität, das Verhalten so weit zu optimieren, wie Sie möchten.
Es ist wichtig zu wissen, dass robocopy nicht nur das Konzept einer Datei oder eines Verzeichnisses kennt. Es gibt viel mehr zu einem Dateisystem als das und robocopy unterstützt fast alles.
Eine Datei, die sich in einem Dateisystem befindet, ist nicht nur ein dummes Objekt mit einem einzigen Zweck. Es gibt viele verschiedene Attribute und Dinge, die mit dem Konzept einer Datei gehen. Zum Beispiel hat eine Datei Attribute wie:
- ein Zeitstempel (geschrieben, geändert und zugegriffen)
- NTFS-ACL
- ein Besitzer
- NTFS-Auditing-Informationen
- verstecktes Flag
- archiviertes Flag
Wenn Sie eine Datei kopieren oder verschieben sie haben jedoch die Möglichkeit, all das Zeug mitzubringen, wenn Sie möchten.
Wenn Sie robocopy ausführen, kopieren Sie nicht nur eine Datei, sondern möglicherweise auch alle anderen Informationen damit. Es ist wichtig, das zu erkennen und es in den Optionen zu berücksichtigen, die Sie robocopy zur Verfügung stellen.
Die Grundlagen: WhatIf-Szenarien ausführen
Wenn Sie irgendwo einen riesigen Dateiserver haben, den Sie migrieren möchten, und noch keine Maßnahmen ergreifen möchten, können Sie robocopy verwenden, um das zurückzugeben, was es getan hätte.
Mit der Option /L
können Sie robocopy anweisen, alle von Ihnen angegebenen Dateien und / oder Ordner aufzulisten und eine Liste der Dateien zurückzugeben, die es kopiert / verschoben hätte.
Sie können die Option /L
mit jeder anderen Option verwenden. Dies ist eine großartige Möglichkeit, alle Optionen zurückzugeben, die robocopy verwendet hätte (Standard oder nicht). Es gibt Ihnen einen Überblick darüber, was Robocopy angesichts der von Ihnen bereitgestellten Optionen tun wird.
Die Grundlagen: Kopieren von Dateien
Die grundlegendste Verwendung von robocopy ist die Verwendung eines Quell- und Zielverzeichnisses ohne Optionen.
> robocopy C:\src C:\dst
Diese Option kopiert alle Dateien (ausgenommen Unterordner) aus C:\src zu C:\dst.
Sie können auch alles kopieren, einschließlich Unterordner (leer oder nicht) und NTFS-Berechtigungen. Dies ist, soweit ich das beurteilen kann, die Methode, um buchstäblich alles, was sich in einem Verzeichnis von Dateien befindet, in ein anderes Verzeichnis zu kopieren.
Unten kopiere ich alle NTFS-ACLs, Dateibesitzer, Unterordner (einschließlich leerer) und alle Dateiattribute. All dies wird nur mit der Option /E
ermöglicht, um alle leeren Unterordner einzuschließen, und /COPYALL
, um den Rest abzufangen.
> robocopy C:\src C:\dst /E /COPYALL
Die Grundlagen: Verschieben von Dateien
Verschieben von Dateien überträgt Dateien von einem Verzeichnis in ein anderes, genau wie beim Kopieren. Der einzige Unterschied zu einem Verschiebungsvorgang besteht darin, dass die Quelldateien nach dem Kopieren entfernt werden.
Um Dateien/Verzeichnisse nach dem Kopieren aus der Quelle zu löschen, verwenden Sie die Option /MOV
. Dadurch werden alle Dateien im angegebenen Verzeichnis (keine Unterordner) entfernt.
> robocopy C:\src C:\dst /MOV
Sie können auch /MOVE
verwenden, um alle Dateien und Unterordner zu verschieben.
> robocopy C:\src C:\dst /MOVE
Grundlagen: Dateien synchronisieren
Mit Robocopy können Sie zwei Verzeichnisse synchronisieren. Dies bedeutet, dass entweder sichergestellt wird, dass sich alle Dateien im Zielverzeichnis im Quellverzeichnis befinden und nicht mehr. /MIR
repliziert Daten, indem alle Dateien in der Quelle, nicht im Ziel, kopiert werden, und löscht Dateien im Ziel, nicht in der Quelle. Vorsicht!
> robocopy C:\src C:\dst /MIR
Kopieren von Dateien über ein Netzwerk
Wenn Sie Dateien über ein Netzwerk kopieren, sollten Sie einige Optionen in Betracht ziehen.
Mit Robocopy können Sie Dateien mit der Option /Z
im ’neu startbaren Modus‘ kopieren. Das bedeutet, wenn eine Datei mit dem Kopieren beginnt und in der Mitte fehlschlägt, kann die Kopie erneut gestartet werden, anstatt vollständig fehlzuschlagen. Die Option /Z
ist nützlich, wenn der Stream über ein Netzwerk geschnitten wird.
Warnung: Einige haben berichtet, dass die Verwendung von
/Z
die Leistung um 1/4 reduziert. Lassen Sie mich Ihre Ergebnisse wissen.
Sie können auch die Option /FFT
verwenden. Es ist bekannt, dass dieser Schalter Dateizeitstempel bei der Übertragung über ein Netzwerk genauer beibehält. Diese Option verwendet FAT-Dateisystem-Zeitstempel anstelle von NTFS.
robocopy C:\src \SRV1\share /Z /FFT
Verwenden von /IPG zur Steuerung der Paketlücke
Wenn Sie Dateien über ein Netzwerk kopieren, können Sie den Schalter /IPG
verwenden. Dies wird auch als Inter-Packet-Gap-Option bezeichnet. Diese Option definiert (in Millisekunden) die Häufigkeit, in der robocopy zwischen dem Senden neuer Pakete wartet.
Verwenden Sie immer UNC-Pfade, nicht Laufwerksbuchstaben
Ein Leser auf Reddit entdeckte den harten Weg, zugeordnete Laufwerke nicht als Zielverzeichnis zu verwenden. Verwenden Sie stattdessen immer einen UNC-Pfad. In diesem Fall können Probleme mit dem Limit von 256 Zeichen auftreten. Weitere Informationen finden Sie in diesem Microsoft-Dokument .
Robocopy Backup-Modus (Robocopy / Z)
Robocopy hat eine Option (/B
) oder als Backup in den neustartbaren Modus (/ZB
), die Dateien im Backup-Modus kopiert. Was ist überhaupt der „Backup-Modus“?
Wenn Sie normalerweise eine Datei in Windows kopieren und auf eine Datei klicken, für deren Zugriff Administratorrechte erforderlich sind, wird eine Fehlermeldung angezeigt, dass Sie keine Berechtigung haben. Obwohl Sie möglicherweise als lokaler Administrator ausgeführt werden, können Sie von Windows nicht darauf zugreifen.
WARNUNG: Beim Kopieren von Daten auf einen Windows Server 2016-Server mit aktivierter Deduplizierung wurde über beschädigte Servervolumes berichtet. Wenn Sie den Schalter
/ZB
verwenden, wird ein Dedup-Chunk-Speicher in den Systemvolume-Informationen in den Papierkorb verschoben. Die kopierten Dateien sind nicht lesbar und erzeugen Fehler, wenn sie versucht werden, sie zu manipulieren. Serverfault Link mit mehr Infos.
Der Sicherungsmodus ist eine Möglichkeit, auf Dateien zuzugreifen, ohne sich um Berechtigungen kümmern zu müssen.
Robocopy verwendet den Backup-Modus, um das SeBackupPrivilege zum Lesen von Dateien und das SeRestorePrivilege-Benutzerrecht für den Zugriff auf alle benötigten Dateien zu verwenden. Dadurch werden alle ACEs ignoriert, die Sie normalerweise am Zugriff auf diese Dateien hindern würden.
Die Benutzerrechte SeBackupPrivilege und SeRestorePrivilege werden normalerweise Benutzern in den Gruppen Sicherungsoperatoren und Administratoren zugewiesen, können jedoch manchmal entfernt werden. Das Backup-Modul eliminiert dieses Risiko und gewährt dem Benutzer, der robocopy ausführt, vorübergehend diese Rechte.
Wenn Sie überprüfen möchten, ob Ihr Benutzerkonto über dieses Recht verfügt, können Sie whoami /priv
ausführen und beide Rechte sollten angezeigt werden.
Filtern von Dateien und Ordnern
Die große Mehrheit der verfügbaren Optionen besteht darin, Dateien und Verzeichnisse auf viele verschiedene Arten auszuschließen. Ich habe alle Möglichkeiten aufgeschlüsselt, wie Sie Dateien und Verzeichnisse nach verschiedenen Kriterien filtern oder ausschließen können.
Nach Dateiname oder Dateierweiterung
Das Filtern, welche Dateien in einem Robocopy-Aufruf kopiert / verschoben werden, erfolgt mit Platzhaltern. Sie können einen Platzhalter verwenden, um nach Dateien zu filtern, die einer bestimmten Dateinamenszeichenfolge oder -erweiterung entsprechen.
Um beispielsweise nur TXT-Dateien zu kopieren, können Sie * angeben.txt.
> robocopy C:\src C:\dst *.txt
Wenn Sie nur Dateien beschränken möchten, die mit a beginnen, können Sie a* .
> robocopy C:\src C:\dst a*
Y0u kann auch mehrere Sätze von Dateinamensübereinstimmungen bereitstellen, indem Sie sie wie unten gezeigt durch ein Leerzeichen trennen.
> robocopy C:\src C:\dst a* b*
Wenn Sie nach Dateinamen filtern, zeigt robocopy den Filter in der Ausgabe an.
Nach Verzeichnisname
Mit Robocopy können Sie Elemente nicht nur nach Datei, sondern auch nach Verzeichnisnamen filtern. Mit robocopy /xd
können Sie bestimmte Verzeichnisse ausschließen, die einem bestimmten Namen entsprechen.
Verwenden Sie beim Kopieren mehrerer Ordner den Schalter /XD
, um Ordner von der Ausführung auszuschließen.
> robocopy C:\src C:\dst /XD "c:\src\exclude"
Nach Datei- / Verzeichnis-Zeitstempel
Nachfolgend finden Sie alle Robocopy-Optionen, die Dateien und Ordner basierend auf verschiedenen Zeitstempelattributen ausschließen.
Schalter | Erklärung |
/ DCOPY:T | Verzeichniszeitstempel kopieren |
/ MAXAGE: n | Dateien ausschließen, die älter als n Tage / Datum sind |
/ MINAGE:n | Dateien ausschließen, die neuer als n Tage/Datum sind |
/ XO | Wenn die Zieldatei existiert und das gleiche Datum oder neuer als die Quelle ist, nicht überschreiben |
/ XN | Wenn die Zieldatei existiert und das gleiche Datum oder älter als die Quelle ist, nicht überschreiben |
Beim Filtern nach Zeitstempeln stehen zwei beliebte Optionen zur Auswahl. /XO
und /MAXAGE
.
/XO
ermöglicht es Ihnen, Dateien nur dann vom Kopieren auszuschließen, wenn sie neuer als die Quelle sind. Mit der Option /XO
können Sie nur neue Dateien nach Zugriffsdatum robocopy .
> robocopy C:\src C:\dsc /XO
Wenn Sie das maximale Alter der Dateien kennen, können Sie auch die Option /MAXAGE
verwenden. Auf diese Weise können Sie im Format YYYMMDD das ältere Datum angeben, das eine Datei haben kann, bevor sie kopiert wird.
> robocopy c:\src c:\dst /S /MAXAGE:20191001
Robocopy Jobs
Sie haben gesehen, dass Ihnen Dutzende von Optionen zur Verfügung stehen. Es ist leicht für diese Optionen, bald unhandlich zu werden. Zum Glück haben Sie eine bessere Option, als sich zu merken und sicherzustellen, dass alle diese Optionen jedes Mal genau richtig sind.
Robocopy-Jobdateien sind Textdateien, die eine Option pro Zeile enthalten. Normalerweise verwenden Sie robocopy, um diese Jobdateien zu erstellen. Nach der Erstellung können Sie sie entweder mit Robocopy ändern oder mit einem einfachen Texteditor.
Sie haben verschiedene Robocopy-Befehle, die mit Jobs arbeiten.
Schalter | Erklärung | Standardverhalten | Äquivalenter Schalter | Anmerkungen |
/ JOB:jobname | Parameter aus der benannten Jobdatei übernehmen | |||
/ SPEICHERN:jobname | Parameter in der benannten Jobdatei speichern | |||
/ BEENDEN | Beenden nach der Verarbeitung der Befehlszeile | Nützlich zum Anzeigen von Parametern | ||
/ NOSD | Es ist kein Quellverzeichnis angegeben | |||
/ NODD | Es ist kein Zielverzeichnis angegeben | |||
/ WENN | Die folgenden Dateien einschließen |
Eine typische Jobdatei, die mit Robocopy erstellt wurde, hat eine RCJ-Erweiterung und sieht wie das folgende Snippet aus. Diese Jobdatei wurde durch Ausführen von robocopy C:\src D:\dst /save:myjob
erstellt. Sie können sehen, dass Sie Kommentare in der Jobdatei mit ::
was das meiste von dem ist, was diese Datei hat.
Ohne Kommentare würde die Datei nur eine Option pro Zeile enthalten.
:::: Robocopy Job C:\MYJOB.RCJ:::: Created by Administrator on Sunday, August 18, XXXX at 8:53:24 AM:::::: Source Directory ::: /SD:C:\SRC\ :: Source Directory.:::: Destination Directory ::: /DD:C:\SRC\ :: Destination Directory.:::: Include These Files ::: /IF :: Include Files matching these names:: *.* :: Include all names (currently - Command Line may override):::: Exclude These Directories ::: /XD :: eXclude Directories matching these names:: :: eXclude no names (currently - Command Line may override):::: Exclude These Files ::: /XF :: eXclude Files matching these names:: :: eXclude no names (currently - Command Line may override):::: Copy options ::: /DCOPY:DA :: what to COPY for directories (default is /DCOPY:DA). /COPY:DAT :: what to COPY for files (default is /COPY:DAT).:::: Retry Options ::: /R:1000000 :: number of Retries on failed copies: default 1 million. /W:30 :: Wait time between retries: default is 30 seconds.:::: Logging Options :::
Speichern von Jobdateien
Das Speichern einer Jobdatei ist so einfach wie das Anhängen der Option /SAVE:<jobname>
an das Ende Ihrer Syntax. Ersetzen Sie <jobname>
durch den Namen des Jobs. Die Option /SAVE
erstellt eine Datei mit dem Namen <jobname>.rcj in dem Verzeichnis, in dem Sie robocopy ausgeführt haben.
> robocopy C:\src C:\dst /SAVE:myjob
Als letzte Option müssen Sie /SAVE
angeben. Alle nach /SAVE
angegebenen Optionen werden der Jobdatei nicht hinzugefügt. Beachten Sie auch, dass robocopy die vorhandene Jobdatei immer überschreibt, selbst wenn bereits eine vorhandene Jobdatei vorhanden ist. Sichern oder Versionskontrolle Ihrer Job-Dateien!
Hinweis: Wenn Sie versuchen, die Option
/MT
beim Speichern in einer Jobdatei zu verwenden, wird sie nicht in der Jobdatei enthalten sein. Lassen Sie mich wissen, ob Sie in der Lage waren, dies aufzunehmen.
Jobdateien verwenden
Sobald ein Job in einer Jobdatei gespeichert wurde, können Sie mit der Option /JOB:<jobname>
die Jobdatei angeben, aus der gelesen werden soll. Robocopy liest alle Parameter in der Jobdatei. Es wird dann so ausgeführt, als ob Sie die Optionen direkt in der Befehlszeile angegeben hätten.
> robocopy /JOB:myjob
Erstellen einer Jobdatei ohne Ausführung eines Jobs Mit /QUIT
Der Zweck der Option /QUIT
ist nicht offensichtlich. An der Oberfläche denken Sie vielleicht, dass /QUIT
ein Laufen zum Beenden zwingt. Stattdessen wirkt /QUIT
eher wie eine Option, um zu verhindern, dass ein Job überhaupt ausgeführt wird.
Offiziell erzwingt die Option /QUIT
„robocopy, die Verarbeitung über die Befehlszeile zu beenden“. Es wäre jedoch besser, eine Jobdatei zu erstellen, ohne einen Job auszuführen.
Wenn Sie die Option /SAVE
verwenden, wird der Job auch automatisch ausgeführt. Es gibt keine Möglichkeit, eine Jobdatei zu erstellen, ohne den Job zuerst auszuführen. Sie können die RCJ-Jobdatei mit einem Texteditor erstellen oder robocopy verwenden, indem Sie /QUIT
an das Ende anhängen.
> robocopy C:\src C:\dst /SAVE:myjob /QUIT
Bearbeiten einer Jobdatei
Da Jobdateien nur Textdateien sind, können Sie sie mit Ihrem bevorzugten Texteditor bearbeiten oder robocopy für Sie erledigen lassen.
Sie können Jobdateien mit einer Kombination aus /JOB
, /SAVE
und /QUIT
bearbeiten.
Vielleicht möchten Sie beispielsweise alle EXE-Dateien aus Ihrem Robocopy-Job ausschließen, die in einer Jobdatei namens backupfiles gespeichert sind.rcj. Sie haben die Jobdatei bereits erstellt und möchten nicht das Ganze überschreiben. Sie können die neue Option wie folgt hinzufügen:
> robocopy /JOB:backupfiles /XF *.EXE /SAVE:backupfiles /QUIT
Verwendung mehrerer Jobdateien
Sie können sogar die Verwendung von Jobdateien kombinieren. Wenn Sie mehrere Jobdateien in derselben Ausführung angeben, werden alle in dieser Ausführung verwendeten Optionen kombiniert.
Möglicherweise haben Sie eine große Liste von Dateien, die Sie von Ihrem Backupfiles-Kopierauftrag ausschließen möchten. Öffnen Sie einen Texteditor und fügen Sie Folgendes hinzu, um einen Ausschluss zu erstellen.rcj-Datei.
/XF a.exe b.txt c.cer
Sie können diese Dateien dann wie folgt vom Backupfiles-Job ausschließen:
> robocopy /JOB:backupfiles /JOB:exclude
Da die ursprüngliche Backupfiles-Jobdatei bereits alle EXE-Dateien ausschloss, würde die Syntax des obigen Laufs /XF *.exe a.exe b.txt c.cer
aussehen. Robocopy kombiniert alle Optionen in einer.
Robocopy-Vorlagen und Verwendung der Optionen /NOSD und /NODD
Wenn Sie mit vielen Jobdateien arbeiten, können Sie Jobdateien erstellen, um Parameter zu akzeptieren. Mit Robocopy können Sie Werte von der Befehlszeile an Jobs übergeben, wenn sie ausgeführt werden. Ein Parameter ist kein Robocopy-Begriff, passt aber gut in dieses Szenario.
Sie können Robocopy-Jobs erstellen, um Parameter zu akzeptieren, indem Sie ein Quell- oder Zielverzeichnis nicht explizit mit den Optionen /NOSD
und /NODD
angeben oder einfach kein Quell- und Zielverzeichnis angeben.
Erstellen Sie als einfaches Beispiel eine Jobdatei ohne Quelle oder Ziel mithilfe der folgenden Syntax. Ziel dieses Jobs ist es, alle TXT- und EXE-Dateien von einer Quelle in ein Zielverzeichnis zu kopieren.
> robocopy *.txt *.exe /SAVE:backupfiles /QUIT
Allein wird dieser Job niemals funktionieren, da kein Quell- oder Zielverzeichnis angegeben ist.
Wenn Sie einen Job ohne Quell- und Zielverzeichnis erstellen, wird die Jobdatei automatisch mit den Optionen /NOSD
und /NODD
erstellt.
/NOSD /NODD/IF *.txt *.exe/DCOPY:DA/COPY:DAT/R:1000000/W:30
Die /NOSD
-Optionen teilen robocopy mit, dass Sie kein Quellverzeichnis angegeben haben, während /NODD
angibt, dass Sie kein Zielverzeichnis angegeben haben. Diese Jobdatei ist eine „Vorlage“ für andere Jobs.
Sie können jedoch „Parameter“ an diese Jobdatei übergeben, um die Quell- und Zielverzeichnisse bereitzustellen.
So verwenden Sie die soeben erstellte Jobdatei zum Kopieren von Dateien aus C:\src bis C:\dst können Sie diese Verzeichnisse direkt in der Befehlszeile übergeben, die dann an den Job übergeben wird.
> robocopy /JOB:backupfiles C:\src C:\dst
Asynchrones Kopieren (Robocopy /MT)
Standardmäßig verarbeitet robocopy jeweils nur eine Datei. Sie können robocopy jedoch zwingen, mehr Dateien als auf einmal zu kopieren, indem Sie die Option /MT
verwenden.
Mit der Option /MT
können Sie die Anzahl der Threads angeben, die robocopy zum Kopieren von Dateien verwendet. Das Maximum ist 128.
Sie können /MT
wie folgt verwenden:
> robocopy C:\src C:\dst /MT:32
Ich habe in diesem Fall 32 als Basis gewählt. Ich schlage vor, mit 32 zu beginnen, um zu sehen, wie Ihr Computer und Ihr Netzwerk mit den Dingen umgehen, und die Threads entsprechend anzupassen.
Wenn Sie
/MT
verwenden, können Sie/IPG
oder/EFSRAW
nicht verwenden. Geben Sie das Protokoll zur Verbesserung der Leistung nicht an die Konsole aus. Verwenden Sie stattdessen/LOG
.
Robocopy planen
Robocopy bietet verschiedene Möglichkeiten, die Ausführung zu planen.
Mit /RH
Mit der Option /RH
können Sie robocopy anweisen, nur während einer bestimmten Zeit ausgeführt zu werden. Dies ist großartig, wenn Sie ein Wartungsfenster haben oder eine Zeit, in der alle für den Tag nach Hause gegangen sind.
Sie können eine Start- und eine Endzeit im Format HHMM-HHMM angeben. Um beispielsweise robocopy aufzurufen, es jedoch nur zwischen den von der Systemuhr definierten Stunden 5PM und 9AM ausführen zu lassen, führen Sie Folgendes aus:
> robocopy C:\src C:\dst /RH:1700-0900
Sie werden sehen, dass, wenn Sie robocopy außerhalb dieser Stunden aufrufen, wird es Ihnen sagen, die aktuelle Zeit und warten Sie auf die Startzeit zu laufen.
Sie müssen sicherstellen, dass beide Zeiten im 24-Stunden-Format vorliegen und genau vierstellig sind. Das Fenster muss länger als zwei Minuten sein.
Standardmäßig wird bei Verwendung von /RH
vor dem gesamten Lauf nach der Startzeit gesucht. Wenn Sie jedoch viele Dateien haben und glauben, dass der Prozess länger dauern kann, können Sie die Option /PF
verwenden. /PF
zwingt robocopy, das Fenster vor jeder Datei zu überprüfen.
Verwenden des Taskplaners
Das Ausgabeprotokoll
Robocopy gibt immer ein Ausgabeprotokoll zurück. Ob dieses Protokoll über stdout auf der Konsole angezeigt und / oder in eine Protokolldatei umgeleitet wird, liegt bei Ihnen.
Sie haben viele Optionen, wenn Sie die Robocopy-Ausgabe anzeigen.
Schalter | Erklärung | Standardverhalten | Äquivalenter Schalter | Anmerkungen |
/ NP | Kein Fortschritt. Unterdrückt die Anzeige von Fortschrittsinformationen. Dies kann nützlich sein, wenn die Ausgabe in eine Datei umgeleitet wird. | |||
/ unicode | Anzeige der Statusausgabe als Unicode-Text | |||
/ LOG: Datei | Ausgabestatus in Protokolldatei und überschreiben | |||
/ UNILOG: Datei | Ausgabestatus in Unicode-Protokolldatei und überschreiben | |||
/ LOG+:datei | Status in Protokolldatei ausgeben und an vorhandene Protokolldatei anhängen | |||
/ UNILOG +: Datei | Status in Unicode-Protokolldatei ausgeben und an vorhandene Protokolldatei anhängen | |||
/ TS | Zeigt die Dateizeitstempel für jede verarbeitete Datei an. | |||
/ FP | Ersetzt einfache Dateinamen durch vollständige Dateipfadnamen in der Ausgabe. | |||
/ NS | Zeigt keine Dateigrößen an. | |||
/ NC | Blendet die Ausgabe der Dateiklasse „Text Tags“ aus (Weitere Informationen finden Sie hier: https://www.uvm.edu/~gcd/2015/04/robocopy-file-classes/) | |||
/ NFL | Blendet Dateinamen aus. Fehler werden jedoch weiterhin protokolliert. Alle Dateien Dateien, die gelöscht wurden oder gelöscht würden, wenn /L weggelassen wurde, werden immer protokolliert | |||
/ NDL | Blendet die Ausgabe der Verzeichnisliste aus. Vollständige Dateipfadnamen werden ausgegeben, um problematische Dateien leichter aufzuspüren. | |||
/ TEE | Ausgabe in das Konsolenfenster sowie die Protokolldatei | |||
/ NJH | Kein Job-Header | |||
/ NJS | Keine Jobübersicht | |||
/ BYTES | Druckgrößen als Bytes | |||
/ X | Alle Dateien melden, nicht nur die ausgewählten & kopiert | |||
/ V | Ausführliches Ausgabeprotokoll erstellen, das übersprungene Dateien anzeigt | |||
/ ETA | Geschätzte Ankunftszeit der kopierten Dateien anzeigen. Zeigen Sie die Startzeit jeder Dateikopie und die geschätzte Fertigstellungszeit basierend auf dem beobachteten Durchsatz früherer Kopien an. Die Zeiten werden nach dem Dateinamen im Format HH:MM – > HH:MM (Start – > finish) angezeigt. | |||
/ DEBUG | Informationen zum Debug-Volume anzeigen |
Begrenzung von Protokollelementen mit /NJS und /NJH
Standardmäßig gibt robocopy zwei Elemente in der Ausgabe zurück, einen Job-Header und eine Job-Zusammenfassung.
Der Job-Header ist der einfache ROBOCOPY-Header oben.
Die Jobübersicht zeigt einen zusammenfassenden Status aller Dateien / Ordner, wie viele Daten übertragen wurden und die Zeit, zu der der Lauf beendet wurde.
Sie können jedes dieser Elemente ausblenden, indem Sie die Option /NJH
zum Ausblenden des Jobheaders und die Option /NJS
zum Ausblenden der Jobübersicht verwenden. Sie können eine dieser Optionen oder beide zusammen einschließen.
Umleiten des Ausgabeprotokolls in eine Datei
Wenn Sie das Ausgabeprotokoll speichern müssen, können Sie es in eine Textdatei umleiten und / oder auf der Konsole anzeigen. Sie können dies mit herkömmlichen Ausgabeweiterleitungen wie >
, >>
, PowerShell oder der Option /LOG
tun.
Um das Ausgabeprotokoll mit der Option /LOG
in eine Datei umzuleiten und eine vorhandene Protokolldatei zu überschreiben, verwenden Sie die Syntax /LOG:<filepath>
wie unten beschrieben. Die einzige Ausgabe, die Sie auf der Konsole erhalten, ist der Pfad zur Protokolldatei.
> robocopy C:\src C:\dst /LOG:c:\file.log Log File : c:\file.log
Wenn Sie den Inhalt einer vorhandenen Protokolldatei beibehalten und Ergebnisse an eine Datei anhängen möchten, können Sie den Operator +
wie unten gezeigt verwenden.
> robocopy C:\src C:\dst /LOG+:c:\file.log Log File : c:\file.log
Ausgabeprotokoll in eine Datei umleiten und auf der Konsole anzeigen
Wenn Sie das Ausgabeprotokoll in einer Datei speichern, aber auch auf der Konsole anzeigen möchten, können Sie die Option /TEE
verwenden. Diese Option bewirkt, dass robocopy die Ausgabe in die Protokolldatei schreibt, während das Standardverhalten der Ausgabe an die Konsole beibehalten wird.
robocopy C:\src C:\dst /LOG+:c:\file.log /TEE
Exit-Codes
Wie alle anderen Befehlszeilenprogramme gibt robocopy Exit-Codes abhängig von den Ergebnissen der Ausführung zurück. Wir alle wünschen uns, dass robocopy immer erfolgreich mit einem 0
beendet wird, aber das passiert nicht immer.
Nachfolgend finden Sie den gesamten Exit-Code, den robocopy zurückgibt, und deren Erklärung. Jeder Exit-Code, der größer als sieben ist, weist auf mindestens einen Fehler während der Ausführung hin.
Exit-Code | Erklärung |
0 | Keine Aktion ausgeführt. Quelle und Ziel werden synchronisiert. |
1 | Mindestens eine Datei wurde erfolgreich kopiert. |
2 | Zusätzliche Dateien oder Verzeichnisse wurden erkannt. Protokoll untersuchen. |
3 | Exit-Codes 2 und 1 kombiniert. |
4 | Nicht übereinstimmende Dateien oder Verzeichnisse gefunden. Protokoll untersuchen. |
5 | Exit-Codes 4 und 1 kombiniert. |
6 | Exit-Codes 4 und 2 kombiniert. |
7 | Exit-Codes 4, 1 und 2 kombiniert. |
8 | Mindestens eine Datei oder ein Verzeichnis konnte nicht kopiert werden. Wiederholungslimit überschritten. Protokoll untersuchen. |
16 | Kopie scheiterte katastrophal. |
Beachten Sie, dass, wenn Sie robocopy in einem Drittanbieter-Dienstprogramm ausführen, dieses Dienstprogramm möglicherweise denkt, dass jeder Exit-Code ungleich Null ein Fehler ist. Um dies zu verhindern, können Sie den Exit-Code in 0 ändern, wenn er 1 zurückgibt.
Der Robocopy „Extra“ -Datei-Exitcode ist ein allgemeiner Rückgabecode, was bedeutet, dass sich eine „extra“ -Datei im Zielordner, aber nicht im Quellordner befindet. Dieser Code schließt Extras aus, die das Löschen vom Ziel verhindern.
Ändern des Exit-Codes in einer Batchdatei
Wenn Sie robocopy mit einer Batchdatei ausführen, finden Sie den Wert der Variablen %ERRORLEVEL%
. Wenn 1 zurückgegeben wird, verwenden Sie das Schlüsselwort exit
, um das Skript mit 0 zu beenden.
> (robocopy <options>) ^& IF %ERRORLEVEL% LEQ 1 exit 0
Ändern des Exit-Codes in einem PowerShell-Skript
Wenn Sie robocopy in einem PowerShell-Skript ausführen, können Sie robocopy mit Start-Process
mit PassThru
aufrufen, um den erstellten Prozess zurückzugeben, und Wait
, um auf den Abschluss von robocopy zu warten. Sie können dann die Eigenschaft ExitCode
auf den Wert 1 überprüfen. Wenn der Exit-Code 1 ist, beenden Sie das PowerShell-Skript mit einer 0 mit $host.SetShouldExit()
.
$exitCode = (Start-Process -FilePath 'robocopy' -ArgumentList '<option>' -PassThru -Wait).ExitCodeif ($exitCode -eq 1) { $host.SetShouldExit(0)}
Häufige Fehler
Wenn Sie mit Tausenden von Dateien zu tun haben, müssen Sie auf einige Probleme stoßen. Hier ist eine Aufschlüsselung der häufigsten Fehler, auf die ich gestoßen bin
Error Invalid Parameter
Wenn Sie einen Fehler sehen, der error invalid parameter , bedeutet dies normalerweise, dass Sie versucht haben, Optionen irgendwie außerhalb der Sequenz an robocopy zu übergeben. Der Fehler robocopy invalid parameter 3 scheint der häufigste zu sein.
Dieser Fehler tritt häufig auf, wenn Sie ein Quell- oder Zielverzeichnis mit Leerzeichen angeben und vergessen, es mit Anführungszeichen zu umgeben.
Robocopy Beispiele
Sie können Ihre eigenen Strings von robocopy bauen oder Sie können nehmen, was andere gelernt haben und sie verwenden! In diesem Abschnitt behandle ich Anwendungsfälle zur Verwendung von Robocopy, um verschiedene Dinge zu erreichen.
Ermitteln der Verzeichnisgröße eines Netzwerkordners
Contributor: northendcooper (Reddit)
> robocopy "\MACHINE\fileshare" c:\dummy /l /xj /e /nfl /ndl /njh /r:0 /mt:64
Ordnerinhalte schnell löschen (Berechtigungen für Unterordner ignorieren)
Mitwirkender: pizzasteveo (Reddit)
> robocopy c:\dummy c:\foldertodelete /MIR
Durchführen großer Dateimigrationen
Mitwirkender: @MySnozzberries (Twitter)
Das Ziel dieses Snippets ist es, den Besitz aller Dateien an Administratoren zurückzugeben. Wir fügen dann einen expliziten ACE für die Administratorengruppe hinzu, um rekursiv die volle Kontrolle über jedes Objekt zu erhalten, obwohl wir auch die Vererbung festlegen.
Schließlich machen wir eine vollständige Robocopy-Kopie mit DACLs zum Ziel mit log. Das Protokoll kann dann auf zusätzliche Berechtigungsprobleme oder nur Dateisperren überprüft werden, und eine weitere Delta-Synchronisierung kann später durchgeführt werden.
> takeown /F .\test /R /A /D Y> icacls .\test /grant "Administrators":(OI)(CI)F /T> robocopy .\test .\test2 /E /SEC /FP /V /LOG:.\temp.log
Erzwingt Rekursiv die Administratorengruppe als Eigentümer aller Dateien und Verzeichnisse. Es kann Wege geben, dies zu umgehen, aber dies ist der schwerste Ansatz und normalerweise der schnellste.
> takeown /F .\test /R /A /D Y
Sobald wir der Besitzer sind, können wir jetzt für jedes Objekt ein neues ACE in die DACL erzwingen. Dies gewährt Administratoren die volle Kontrolle bei aktivierter Vererbung und rekursiv über den Pfad.
Wenn Sie dies im Stammverzeichnis mit Vererbung festlegen, wird die Umgebung abgedeckt, aber wenn eine Freigabe einen EIGENTÜMER mit voller Kontrolle hat (was leider sogar Microsofts Empfehlung für Dinge wie Dateibenutzerprofilspeicher ist), kann der Benutzer die Vererbung deaktivieren oder ASSe nach eigenem Ermessen entfernen. Eine schwere Hand ist also normalerweise die schnellste Lösung.
> icacls .\test /grant "Administrators":(OI)(CI)F /T
Sobald wir die DACLs für die meisten Dateien geändert haben, versuchen wir, die Dateien an einen neuen Speicherort zu kopieren, was bei Migrationen von Dateifreigaben üblich ist. Dazu kopieren wir die Elemente rekursiv und verwenden den Schalter /SEC
, um auch die Daten / Attribute / Zeitstempel / DACLs zu kopieren.
Dann protokollieren wir den Vorgang mit vollständigen Pfaden und für alle Objekte (/V
ausführlicher Schalter) in einem Protokoll, damit wir die < 5% der Fehler beheben können, die häufig mit der Pfadlänge oder der Dateisperre zusammenhängen, und detaillierter werden.
> robocopy .\test .\test2 /E /SEC /FP /V /LOG:.\temp.log
Dies ist ein einfaches Framework zum Verwalten einer Dateifreigabemigration mit minimalen Auswirkungen auf die Benutzererfahrung. Es verbessert auch die Kontrolle über die Daten. Wenn ein Kunde über eine starke Data Governance-Praxis verfügt, bei der der Besitz auf untergeordneter Ordnerebene ordnungsgemäß verwaltet wird, wird dies zu einer komplizierteren Diskussion, aber die meisten Kunden, die wir finden, haben das Glück, nur Vererbung und gruppenbasierte ASSe zu verwenden.
Robocopy-Alternativen
Robocopy ist ein großartiges Tool, aber es gibt so viele andere ähnliche Tools, die von Interesse sein könnten.
- xxcopy – Ein ähnliches Befehlszeilendienstprogramm mit unzähligen Optionen.
- Copy-Item PowerShell Cmdlet – Nicht annähernd so vorgestellt, aber viel einfacher.
- TreeSize – GUI und skriptfähiges Dienstprogramm zum Auffinden von Ordnerinformationen.
Zusammenfassung
Robocopy ist ein hervorragendes Werkzeug, um große Mengen von Dateien zu kopieren. Egal, ob Sie eine Datenmigration durchführen, Ordner synchron halten oder einfach nur eine schnelle Möglichkeit zum genauen Kopieren von Dateien benötigen, Robocopy ist eine gute Wahl.