25

Есть ли команда MS-DOS, которая позволяет мне удалить все файлы, кроме одного?

Рассмотрим в качестве примера следующие файлы:

a.001  
a.002  
a.003  
a.exe  
a.c  

Есть ли команда для удаления всех файлов, кроме a.c?

6 ответов6

34

Для этого вы можете использовать команды for и if :

for %i in (*) do if not "%~i" == a.c del "%~i"

Он проходит через текущий каталог и сравнивает каждое имя файла с Если он не совпадает, файл удаляется.

14

Вы можете установить файл только для чтения, прежде чем удалить все

attrib +r a.c
del *.*
attrib -r a.c
8

Нет, нет Я бы сделал каталог, скопировал в него важный файл, сотри . и переместите файл обратно. Затем удалите временный файл.

mkdir temp
move a.c temp
erase *.*
move temp\* .
rmdir temp
3
FOR %f IN (*.*) DO IF NOT [%f]==[a.c] DEL /Q %f
1
FOR /F "tokens=1-4" %%a in ('dir /a:-d /b /s %app_path%^|find /v "%file%"') DO Del /q %%a %%b %%c %%d
0

Для скорости я использую delen:

delen /! a.c

TCC/LE также имеет более мощную команду del :

del /[!a.c] *

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .