Robocopy ist dafür bekannt Ordner-Strukturen zu kopieren, es ist allerdings auch möglich nur eine Datei zu kopieren.
Der einfachste Befehl sieht so aus:
robocopy <Quelle> <Ziel> <Datei>
Damit die Datei nur kopiert wird, wenn Sie sich geändert hat hängt man einfach noch ein „/xo“ an:
robocopy <Quelle> <Ziel> <Datei> /xo
Ein kleines Beispiel, bei dem zwischen den beiden Robocopy-Aufrufen eine Änderung an der Datei stattgefunden hat:
C:\Temp>robocopy C:\Temp C:\Temp\Dest Test.txt /xo ------------------------------------------------------------------------------- ROBOCOPY :: Robustes Dateikopieren für Windows ------------------------------------------------------------------------------- Gestartet: Mittwoch, 27. November 2019 19:48:33 Quelle : C:\Temp\ Ziel : C:\Temp\Dest\ Dateien : Test.txt Optionen: /DCOPY:DA /COPY:DAT /XO /R:1000000 /W:30 ------------------------------------------------------------------------------ 1 C:\Temp\ ------------------------------------------------------------------------------ Insgesamt KopiertÜbersprungenKeine Übereinstimmung FEHLER Extras Verzeich.: 1 0 1 0 0 0 Dateien: 1 0 1 0 0 0 Bytes: 11 0 11 0 0 0 Zeiten: 0:00:00 0:00:00 0:00:00 0:00:00 Beendet: Mittwoch, 27. November 2019 19:48:33 C:\Temp>robocopy C:\Temp C:\Temp\Dest Test.txt /xo ------------------------------------------------------------------------------- ROBOCOPY :: Robustes Dateikopieren für Windows ------------------------------------------------------------------------------- Gestartet: Mittwoch, 27. November 2019 19:48:48 Quelle : C:\Temp\ Ziel : C:\Temp\Dest\ Dateien : Test.txt Optionen: /DCOPY:DA /COPY:DAT /XO /R:1000000 /W:30 ------------------------------------------------------------------------------ 1 C:\Temp\ 100% Neuer 20 Test.txt ------------------------------------------------------------------------------ Insgesamt KopiertÜbersprungenKeine Übereinstimmung FEHLER Extras Verzeich.: 1 0 1 0 0 0 Dateien: 1 1 0 0 0 0 Bytes: 20 20 0 0 0 0 Zeiten: 0:00:00 0:00:00 0:00:00 0:00:00 Geschwindigkeit: 5000 Bytes/Sek. Geschwindigkeit: 0.286 Megabytes/Min. Beendet: Mittwoch, 27. November 2019 19:48:48
Wie man an der Ausgabe erkennen kann, wird beim ersten Aufruf die Datei übersprungen, da sich nichts geändert hat, beim zweiten Aufruf wird die Datei kopiert, da sich zwischenzeitlich eine Änderung ergeben hat. Der Vollständigkeit halber: Ganz zu Beginn wurde die Datei mit dem gleichen Befehl initial kopiert.
Kopieren via Netzwerk
Das Ganze kann selbstverständlich auch via Netzwerk erfolgen. Hierzu bietet es sich an, den Parameter „/zb“ anzuhängen:
robocopy <Quelle> <Ziel> <Datei> /xo /zb
Ist das Ziel z.B. ein NAS oder ein Computer außerhalb der Domäne so lässt sich zuerst eine Anmeldung am Zielcomputer durchführen und erst dann der Kopiervorgang durchführen. Ein kleines Beispiel-Skript:
@echo off net use \\Zielserver\Freigabe <Passwort> /user:<Zielserver\Benutzername> /persistent:no robocopy "D:\Daten" "\\Zielserver\Freigabe" "Datenbank.dat" /xo /zb net use \\Zielserver\Freigabe /d /y
Rückgabewert auswerten
Generell kann man bei Robocopy über den Parameter „/log:<Dateiname>“ ein Protokoll erstellen lassen. Möchte man allerdings z.B. im Fehlerfall eine Benachrichtigung erhalten, so bietet es sich an den Rückgabewert auszuwerten:
- 0 – Keine Fehler, es wurde aber auch nichts kopiert. Gilt auch für übersprungene Dateien.
- 1 – Eine oder mehr Dateien wurden fehlerfrei kopiert.
Ein Rückgabewert jenseits von 1 bedeutet im Regelfall Schwierigkeiten.
robocopy <Quelle> <Ziel> <Datei> /xo if %errorlevel% gtr 1 ( <Aktion> )
Am Beispiel mit SMTPSend lässt sich eine E-Mail versenden:
robocopy <Quelle> <Ziel> <Datei> /xo if %errorlevel% gtr 1 ( echo Fehler beim Kopieren einer Datei > e-mail.txt echo %date% - %time% - %errorlevel% >> e-mail.txt smtpsend.exe -f<Absender-Adresse> -t<Empfänger-Adresse> -h<Mailserver> -sRobocopy-Fehler -ie-mail.txt -lu<Benutzername-des-Absender> -lp<Kennwort> )
Oder mit Windows-Bordmitteln Einträge ins Ereignisprotokoll schreiben:
robocopy <Quelle> <Ziel> <Datei> /xo if %errorlevel% gtr 1 ( eventcreate /id 100 /l application /t ERROR /so "Robocopy" /d "Fehler beim Kopieren einer Datei" )
Quelle:
stackoverflow – Use Robocopy to copy only changed files?

Schon immer Technik-Enthusiast, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen. Die Schwerpunkte liegen auf der Netzwerkinfrastruktur, den Betrieb von Servern und Diensten.