
Ich habe ein Programm, das Dateien automatisch in ein Verzeichnis kopiert und wenn es ein Duplikat erstellt, benennt es es folgendermaßen:
file with duplicate.xxx
file with duplicate - 1.xxx
file with duplicate - 2.xxx
Ich brauche eine Möglichkeit, alle Duplikate mit einer Windows-Batchdatei zu löschen.
Etwas in der Art von:
FOR %f IN (C:\files\*.*) DO del "%f - 1"
Das wird jedoch nicht funktionieren, denn das würde bedeuten:file with duplicate - 1.xxx - 1
Antwort1
Wenn Sie alle Dateien löschen möchten, deren Name auf endet - ?
, waren Sie nah dran.
Versuche dies:
FOR %%f IN ("C:\files\* - ?.*") DO del "%%f"
Sie müssen die Prozentzeichen verdoppeln, wenn Sie es aus einer Batchdatei ausführen. Und testen Sie zuerst mit einem echo
statt mit einem del
.
Antwort2
Das ist nicht nötig FOR
, del
Platzhalter können akzeptiert werden. Versuchen Sie:
del "c:\files\* - 1.xxx"
Stimmt mit allem mit dem Suffix „-1.xxx“ im Verzeichnis überein.