Löschen Sie Dateien aus einem Ordner, wenn eine ähnlich benannte Datei in einem anderen Ordner nicht vorhanden ist

8

Ich muss Dateien aus Ordner A löschen, wenn in Ordner B keine Datei mit demselben Namen, aber unterschiedlichem Dateityp vorhanden ist.

Zum Beispiel:

FOLDER A
file1.gif
file2.gif
file3.gif
file4.gif
file5.gif
file6.gif

FOLDER B
file2.jpg
file4.jpg
file6.jpg

Die Batch - Datei oder Software würde die beiden Ordner vergleichen und löschen file1.gif, file3.gifund file5.gifaus dem Ordner A.

ajcw
quelle

Antworten:

7

Sie können dies direkt über die Befehlszeile tun: Das
for %F in ("A\*.gif") do @if not exist "B\%~nF.jpg" echo del "%F"
obige Beispiel druckt einfach die Befehle aus, damit Sie überprüfen können, ob sie das tun, was Sie wollen. Nachdem Sie sicher sind, dass es in Ordnung ist, entfernen Sie es echound es wird tatsächlich ausgeführt delete.
Sie können dies natürlich in einer Charge setzen, wenn Sie so wollen , ersetzen %mit %%und entfernen @(und wahrscheinlich hinzufügen @echo offstatt)

wmz
quelle
Das hat perfekt funktioniert - ich wünschte, ich könnte zweimal abstimmen. Vielen Dank.
Ajcw
Funktioniert auch, wenn Sie Dateien aus A löschen möchten, die in B vorhanden sind:for %F in ("A\*.gif") do @if exist "B\%~nF.jpg" echo del "%F"
PaloDravecky