Löschen Sie Dupe-Dateien aus der Quelle. Verschieben Sie in Robocopy nur die fehlenden Dateien an das Ziel

2921
Oskar Kjellin

Wir haben vor kurzem alle unsere Dateien auf einen neuen Speicherserver kopiert. Wir wollten damals nicht umziehen, weil wir nicht sicher waren, ob Dateien verloren gehen würden.

Das Problem ist jetzt, dass wir Dateien an beiden Orten haben.

Wie können wir nur die Dateien verschieben, die nicht im Ziel vorhanden sind, und für die Dateien, die an beiden Orten vorhanden sind, löschen wir sie aus der Quelle? Es ist Windows Server 2008.

2

5 Antworten auf die Frage

1
Eric
robocopy OLDDIR NEWDIR /S /XO 

Dies lässt neuere Dateien in NEWDIR allein. Gleiche oder ältere Dateien in NEWDIR werden überschrieben.

robocopy OLDDIR NEWDIR /MIR /XO 

Ähnliches gilt für das Löschen von Dateien.

Die Semantik des Befehls / XO ist rückwärts.

Ich habe nur einen Satz von Quell- und Zielverzeichnissen eingerichtet und es mir selbst bewiesen, da keine Dokumentation die wahre Bedeutung von "Exclude Newer" erklärt. Neuer was? Neuere Quelle? Neueres Ziel? Was?

BEWEIS:

  1. Mach die Kopie.

  2. Bearbeiten Sie eine Datei in NEWDIR mit einem neuen Zeitstempel.

  3. Führen Sie die Kopie erneut mit / XO aus. Der neue Zeitstempel der Datei in NEWDIR bleibt erhalten.

  4. Führen Sie die Kopie erneut mit / XN aus. Der neue Zeitstempel der Datei in NEWDIR wird zurückgesetzt.

0
R-D

Verwenden Sie ein Vergleichstool wie Beyond Compare. Es kann Ordner vergleichen und zeigt Ihnen, welche Dateien vorhanden sind, und beendet sie nicht in den Ordnern und Unterordnern. Außerdem wird angezeigt, ob es Unterschiede zwischen Dateien gibt, die an beiden Speicherorten vorhanden sind. Beyond Compare kann Dateien auch kopieren und / oder von einem Ordner in einen anderen verschieben.

Ich habe das letztendlich verwendet, da ich dies Schritt für Schritt problemlos tun konnte! Oskar Kjellin vor 14 Jahren 0
0
Charles Gargent

Verwenden Sie das Robocopy-Tool mit dem Schalter / xn. Ich glaube, Server 2008 wird jetzt standardmäßig mit Robocopy geliefert.

/ XC :: eXclude Geänderte Dateien.

/ XN :: eXclude Neuere Dateien.

/ XO :: eXclude Ältere Dateien.

/ XX :: eXclude eXtra-Dateien und -Verzeichnisse.

/ XL :: eXclude Einsame Dateien und Verzeichnisse.

/ MOV :: MOVe-Dateien (nach dem Kopieren von der Quelle löschen).

/ MOVE :: MOVE Dateien UND Verzeichnisse (nach dem Kopieren aus der Quelle löschen).

der Befehl wird also ungefähr so ​​sein

robocopy OLDDIR NEWDIR /MOVE /XN 

Dadurch werden alle alten Dateien verschoben, jedoch keine neuen Dateien überschrieben

Sie können jederzeit die Option / L verwenden, um einen Testlauf durchzuführen. Dies zeigt Ihnen, was passieren wird, ohne etwas zu tun. Einige Dinge können 2008 anders sein, ich verwende die XP-Version.

Nachdem Sie ein wenig getestet haben, scheint es so, als wenn Dateien auf dem Ziel neuer sind als die Quelle, werden sie als älter eingestuft? Also vielleicht XO? Oskar Kjellin vor 14 Jahren 0
0
Chris
robocopy %Files% %Bak% /E /ZB /MOVE /IS /COPY:DATSOU 

Nicht nur, dass Sie benötigen /MOVE, müssen Sie /IS(Include Same - Dateien).

Andernfalls kopiert Robocopy die Datei niemals, wenn dieselbe Datei an beiden Speicherorten vorhanden ist.

Wenn Sie "Include Same" angeben, wird die gleiche Datei an beiden Speicherorten angezeigt, und die Datei wird trotzdem von Quelle kopiert. UND löscht sie wie erwartet von der Quelle.

0
ordinaryuser

robocopy ist gut, aber ich habe festgestellt, dass die Option / move scheinbar nicht funktioniert, wenn die Datei bereits im Ziel vorhanden ist. Die / IS- und / IT-Flags sind dazu gedacht, dies zu regeln, aber für mich nicht, Robocopy ignoriert sie einfach (ymmv). Um dieses Problem zu umgehen, können Sie ein neues Zielverzeichnis erstellen und dieses dann in den Hauptzielbereich verschieben, wenn die Kopie abgeschlossen ist.