Odpowiedzi:
Aby to zrobić, możesz użyć poleceń for
i if
:
for %i in (*) do if not "%~i" == a.c del "%~i"
Przechodzi przez bieżący katalog i porównuje każdą nazwę pliku z ac. Jeśli nie pasuje, plik jest usuwany.
for
regularnie używać, wymyślisz dla niego wszelkiego rodzaju szalone scenariusze. :)
del "%i"
IF
instrukcja nie uwzględniała wielkości liter, zmień ją na IF /I
.
Możesz ustawić plik do odczytu tylko przed usunięciem wszystkiego
attrib +r a.c
del *.*
attrib -r a.c
Nie, nie ma. Zrobiłbym katalog, skopiowałem do niego ważny plik, skasowałem . i przenieś plik z powrotem. Następnie usuń plik tymczasowy.
mkdir temp
move a.c temp
erase *.*
move temp\* .
rmdir temp
FOR %f IN (*.*) DO IF NOT [%f]==[a.c] DEL /Q %f
%f
może mieć spacje w nazwie pliku.
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%
i %file%
są katalogiem głównym drzewa, które należy przechodzić, oraz plikiem, aby odpowiednio uniknąć usuwania. Co to jest ^
i dlaczego przekazujemy cztery tokeny na plik do Del
polecenia?
del /[!a.c] *
yeldsInvalid switch - "[!a.c]".