Verschieben von Dateien zwischen Computern mit der Befehlszeile (Windows)

Verschieben von Dateien zwischen Computern mit der Befehlszeile (Windows)

Ich habe eine VM mit XP, auf der Dateien in zufälligen Momenten hochgeladen werden. Ich brauche ein Skript oder Dienstprogramm für die Befehlszeile, das beispielsweise alle X Minuten ausgeführt wird undBEWEGENAlle hochgeladenen Dateien in einem freigegebenen Verzeichnis auf einer Win7-Box.

Nun, der Befehlszeilenbefehl moveläuft nicht über mehrere Laufwerke hinweg, und erst recht nicht über freigegebene Dateien. (Und er gibt die äußerst hilfreiche Meldung aus Access denied..)

Ich könnte

copy src desr_share
rm src

…aber hier ist der schwierige Teil:

Wenn der Kopierbefehl ausgeführt wird, kann es passieren, dass gleichzeitig eine Datei hochgeladen wird. Der copylädt möglicherweise nur einen Teil der Datei hoch oder überspringt sie vollständig und fährt fort. Später, wenn der rmeintritt, wird die Datei möglicherweise vollständig hochgeladen und der rmlöscht sie, ohne dass sie ordnungsgemäß an das Ziel kopiert wurde.

Ich brauche also etwas, das über die moveSemantik verfügt (eine Datei kopieren und nur bei Erfolg löschen), das aber maschinenübergreifend funktioniert.

Irgendwelche Vorschläge?

PS. Es macht mir nichts aus, wenn eine Datei nur teilweise verschoben wird, solange sie danach nicht gelöscht wird. Ich erzwinge das Überschreiben aller Zieldateien und beim nächsten Durchlauf wird die Datei erneut vollständig hochgeladen.

Antwort1

Sehen Sie sich Robocopy an, das bei Win7 Standard ist und in einem Microsoft Dev Kit für XP verfügbar ist.

Verwenden Sie robocopy /?(oder robocopy /? > drive:\path\robocopy_options.txt) für Optionen.

Windows 7:

http://technet.microsoft.com/en-us/library/cc733145%28v=ws.10%29.aspx

Windows XP:

http://www.microsoft.com/en-us/download/details.aspx?id=17657#Requirements

verwandte Informationen