Antworten:
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 in IF /I
.
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.
mkdir temp
move a.c temp
erase *.*
move temp\* .
rmdir temp
FOR %f IN (*.*) DO IF NOT [%f]==[a.c] DEL /Q %f
%f
könnte Leerzeichen im Dateinamen enthalten.
FOR /F "tokens=1-4" %%a in ('dir /a:-d /b /s %app_path%^|find /v "%file%"') DO Del /q %%a %%b %%c %%d
%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 den Del
Befehl?
Aus Geschwindigkeitsgründen benutze ich delen :
delen /! a.c
TCC / LE hat auch einen mächtigerendel
Befehl:
del /[!a.c] *
del /[!a.c] *
yeldsInvalid switch - "[!a.c]".