Risposte:
È possibile utilizzare i comandi for
e if
per eseguire ciò:
for %i in (*) do if not "%~i" == a.c del "%~i"
Questo passa attraverso la directory corrente e confronta ogni nome di file con ac. Se non corrisponde, il file viene eliminato.
for
regolarmente ti vengono in mente tutti i tipi di scenari folli. :)
del "%i"
IF
istruzione non faccia distinzione tra maiuscole e minuscole, modificarla in IF /I
.
È possibile impostare il file per la lettura solo prima di eliminare tutto
attrib +r a.c
del *.*
attrib -r a.c
No, non c'è. Farei una directory, copierei il file importante in esso, lo cancellerei . e spostare indietro il file. Quindi eliminare il file temporaneo.
mkdir temp
move a.c temp
erase *.*
move temp\* .
rmdir temp
FOR %f IN (*.*) DO IF NOT [%f]==[a.c] DEL /Q %f
%f
potrebbe contenere spazi nel nome file.
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%
e %file%
sono la radice dell'albero da attraversare e il file per evitare l'eliminazione, rispettivamente. Cos'è il ^
, e perché stiamo passando quattro token per file al Del
comando?
del /[!a.c] *
yeldsInvalid switch - "[!a.c]".