Gibt es einen MS-DOS-Befehl, mit dem ich alle Dateien bis auf eine löschen kann?
Betrachten Sie als Beispiel die folgenden Dateien:
a.001
a.002
a.003
a.exe
a.c
Gibt es einen Befehl zum Löschen aller Dateien außer a.c
?
Sie können die Befehle for
und verwenden if
, um dies zu erreichen:
for %i in (*) do if not "%~i" == a.c del "%~i"
Dies durchläuft das aktuelle Verzeichnis und vergleicht jeden Dateinamen mit ac. Wenn es nicht übereinstimmt, wird die Datei gelöscht.
for
regelmäßig zu verwenden, finden Sie alle möglichen verrückten Szenarien dafür. :)del "%i"
IF
Anweisung die Groß- und Kleinschreibung nicht berücksichtigt werden soll, ändern Sie sie inIF /I
.Sie können die Datei so einstellen, dass sie nur gelesen werden kann, bevor Sie alles löschen
quelle
Nein, das gibt es nicht. Ich würde ein Verzeichnis erstellen, die wichtige Datei in dieses kopieren und löschen . und verschieben Sie die Datei zurück. Löschen Sie dann die temporäre Datei.
quelle
quelle
%f
könnte Leerzeichen im Dateinamen enthalten.quelle
%app_path%
und%file%
sind die Wurzel des zu durchsuchenden Baums bzw. der zu löschenden Datei. Was ist das^
und warum übergeben wir vier Token pro Datei an denDel
Befehl?Aus Geschwindigkeitsgründen benutze ich delen :
TCC / LE hat auch einen mächtigeren
del
Befehl:quelle
del /[!a.c] *
yeldsInvalid switch - "[!a.c]".