DOS-Batch-FOR-Schleife Dateien zu löschen, die nicht Mit einem String
Möchte ich löschen Sie alle Dateien im aktuellen Verzeichnis, die enthalten nicht die Zeichenfolge "Beispiel" in Ihrem Namen.
beispielsweise
test_final_1.exe
test_initial_1.exe
test_sample_1.exe
test_sample_2.exe
Möchte ich alle Dateien löschen außer denen, die mit Probe in Ihrem Namen.
for %i in (*.*) do if not %i == "*sample*" del /f /q %i
Is the use of wild card character in the if condition allowed?
Does, (*.*) represent the current directory?
Dank.
InformationsquelleAutor Neon Flash | 2012-05-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einfachsten zu verwenden, FINDEN oder FINDSTR mit
/V
option zum suchen nach Namen, die nicht enthalten einen string, und/I
option für den Fall, insenstive suchen. Wechseln Sie zuFOR /F
- und Rohr-ErgebnisseDIR
zuFIND
.ändern, %F, %%F", wenn in einer batch-Datei.
Verwenden
HELP DIR
von der Befehlszeile aus, um die Hilfe für alle Optionen an. Aber/a-d
schließt Ordner aus der Ausgabe.DELIMS
sollte so eingestellt sein, nichts zu bewahren, das gesamte Datei-Namen. Die Standard-Raum-und-Reiter brechen würde bei dem ersten Leerzeichen in einem Dateinamen. Ein;
einen gültigen Dateinamen-Zeichen. Alle Dateinamen beginnen mit;
würde ignoriert werden, indemFOR
mit der Standard -EOL
option. Keine Datei-Namen enthalten kann:
, so dass ich dieEOL
option, um das Zeichen.InformationsquelleAutor dbenham
InformationsquelleAutor Aacini
Die Antwort von Aacini für mich gearbeitet. Ich brauchte eine bat-Datei, um eine Analyse der Verzeichnisstruktur die Suche nach allen Dateien mit den xyz-Datei-Erweiterung und nicht mit badvalue irgendwo im Pfad. Die Lösung war:
InformationsquelleAutor user3052500