Beseitigen Sie Dateien in Ordnern, die in einer anderen Ordnerstruktur dupliziert sind

363
user1766833

Ich habe zwei Ordner. Einer von ihnen (Ordner 1) enthält Bilder und der andere (Ordner 2) hat mehrere Unterordner mit Bildern. Ich wollte die Bilder in Ordner 1 finden, die in Ordner 2 oder einem ihrer Unterordner dupliziert sind, und sie löschen. Das Verschieben der Nicht-Duplikate in einen neuen Ordner (Ordner 3) ist ebenfalls eine Option.

Kann ich das über die Kommandozeile tun? Brauche ich ein Skript?

Ich habe versucht, FreeFileSynch zu verwenden, aber es funktioniert nicht, wenn Ordner 2 Unterordner hat.

Bearbeiten: Der Robocopy-Vorschlag ist interessant, aber obwohl er Unterordner und deren Inhalt kopieren kann, glaube ich nicht, dass er nur die Dateien innerhalb der Unterordner kopieren kann.

0
Siehe hier: https://superuser.com/questions/1037559/windows-cmd-copy-directories-and-content-recursively-if-the-files-do-not-exist/1037763#1037763 Pimp Juice IT vor 7 Jahren 0
Vielen Dank für die Antwort, aber ich glaube nicht, dass Robocopy Dateien in einem Ordner mit Dateien in mehreren Unterordnern vergleichen kann. user1766833 vor 7 Jahren 0

2 Antworten auf die Frage

0
Aiden Hong

Hier ist der richtige Weg, ohne die externen Downloads. Es sieht auf den ersten Blick wie viel aus, aber wenn Sie es einmal getan haben, ist es sehr einfach. Es funktioniert in allen Windows-Versionen von 7 bis 95. Für unser Beispiel wird angenommen, dass Sie zwei Verzeichnisse mit den Namen 'A' und 'B' vergleichen. 1. Führen Sie cmd.exe aus, um eine Eingabeaufforderung zu erhalten. (In Windows 7 funktioniert die Powershell dafür nicht, zu Ihrer Information.) Dann machen Sie es noch einmal, so dass Sie zwei nebeneinander geöffnet haben. 2. Wechseln Sie in jedem Fenster zu den Verzeichnissen, die Sie vergleichen möchten. (Verwenden Sie 'cd' -Befehle. Wenn Sie damit nicht vertraut sind, sollten Sie wahrscheinlich die externen Dienstprogramme verwenden, es sei denn, Sie möchten die Eingabeaufforderungen kennen lernen.) 3. Geben Sie 'dir / b> A.txt' ein Fenster und 'dir / b> B.txt' in das andere. Sie' Ich habe jetzt zwei Textdateien, die den Inhalt jedes Verzeichnisses auflisten. Das Flag / b bedeutet "bloß", wodurch die Verzeichnisliste nur auf Dateinamen reduziert wird. 4. Verschieben Sie B.txt in den gleichen Ordner wie A.txt. 5. Geben Sie 'fc A.txt B.txt' ein. Der Befehl 'fc' bedeutet Dateivergleich. Dadurch wird eine Liste der Unterschiede zwischen den beiden Dateien mit einer zusätzlichen Textzeile über und unter jedem Unterschied angezeigt, sodass Sie wissen, wo sie sich befinden. Um weitere Optionen zur Formatierung der Ausgabe zu erhalten, geben Sie 'fc /?' Ein. auf die Aufforderung. Sie können die Unterschiede auch in eine andere Datei umleiten, indem Sie etwa 'fc A.txt B.txt> Differenzen.txt' verwenden. Habe Spaß. Der Befehl 'fc' bedeutet Dateivergleich. Dadurch wird eine Liste der Unterschiede zwischen den beiden Dateien mit einer zusätzlichen Textzeile über und unter jedem Unterschied angezeigt, sodass Sie wissen, wo sie sich befinden. Um weitere Optionen zur Formatierung der Ausgabe zu erhalten, geben Sie 'fc /?' Ein. auf die Aufforderung. Sie können die Unterschiede auch in eine andere Datei umleiten, indem Sie etwa 'fc A.txt B.txt> Differenzen.txt' verwenden. Habe Spaß. Der Befehl 'fc' bedeutet Dateivergleich. Dadurch wird eine Liste der Unterschiede zwischen den beiden Dateien mit einer zusätzlichen Textzeile über und unter jedem Unterschied angezeigt, sodass Sie wissen, wo sie sich befinden. Um weitere Optionen zur Formatierung der Ausgabe zu erhalten, geben Sie 'fc /?' Ein. auf die Aufforderung. Sie können die Unterschiede auch in eine andere Datei umleiten, indem Sie etwa 'fc A.txt B.txt> Differenzen.txt' verwenden. Habe Spaß.

Quelle: https://answers.microsoft.com/de-de/windows/forum/windows_7-files/how-to-compare-two-folders-in-win-7-prof-64bit/f99f7b3d-43a9-49d8- b8eb-6b550103e726 Aiden Hong vor 7 Jahren 0
Alles lief gut, bis ich bemerkte, dass "dir / b> B.txt" mir nur die Unterordner im B-Ordner anzeigt, nicht die Dateien in den Unterordnern, was ich brauchte. user1766833 vor 7 Jahren 0
0
user1766833

Die Lösung, die ich gefunden habe, ist nicht perfekt, aber funktioniert.

Ich habe alle Dateien aus Ordner 1 in einen temporären Ordner kopiert, der die Hierarchie mit dem Befehl forfiles in der Befehlszeile reduziert. Dann habe ich die Dateien aus dem temporären Ordner in Ordner 2 verschoben und einige davon ersetzt. Die Dateien, die verschoben wurden, wurden gelöscht, da sie sich bereits in Ordner 1 befanden.

1) In der Befehlszeile: forfiles / p C: \ Ordner1 / s / c "cmd / c copy @path C: \ temporärer Ordner"

2) In Windows Explorer: Verschieben Sie Dateien aus dem temporären Ordner in Ordner 2 und ersetzen Sie die vorhandenen Dateien. Wenn die Dateien ausgewählt sind, löschen Sie sie. Die verbleibenden Dateien sind die Dateien aus Ordner 2, die sich nicht in Ordner 1 befanden.