Відповіді:
Для цього можна скористатися командами for
та if
.
for %i in (*) do if not "%~i" == a.c del "%~i"
Це проходить через поточний каталог і порівнює кожне ім'я файлу з зміном. Якщо воно не відповідає, файл видаляється.
for
регулярно користуватися, ви придумуєте всілякі шалені сценарії для цього. :)
del "%i"
IF
вислів був нечутливим до регістру, змініть його на IF /I
.
Ви можете встановити файл для читання лише перед тим, як видалити все
attrib +r a.c
del *.*
attrib -r a.c
Ні, немає. Я б зробив каталог, скопіював у нього важливий файл, стер . , і перемістіть файл назад. Потім видаліть тимчасовий файл.
mkdir temp
move a.c temp
erase *.*
move temp\* .
rmdir temp
FOR %f IN (*.*) DO IF NOT [%f]==[a.c] DEL /Q %f
%f
у імені файлу можуть бути пробіли.
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%
і %file%
є корінь дерева для переходу, і файл, щоб уникнути видалення відповідно. Що таке ^
, і чому ми передаємо Del
команді чотири маркери на файл ?
Для швидкості використовую делен :
delen /! a.c
TCC / LE також має більш потужнуdel
команду:
del /[!a.c] *
del /[!a.c] *
yeldsInvalid switch - "[!a.c]".