Respostas:
Você pode usar os comandos for
e if
para fazer isso:
for %i in (*) do if not "%~i" == a.c del "%~i"
Isso passa pelo diretório atual e compara o nome de cada arquivo com um ac. Se não corresponder, o arquivo será excluído.
for
regularmente, cria todos os tipos de cenários loucos para isso. :)
del "%i"
IF
declaração não diferencie maiúsculas de minúsculas, altere-a para IF /I
.
Você pode definir o arquivo como somente leitura antes de excluir tudo
attrib +r a.c
del *.*
attrib -r a.c
Não, não existe. Eu criava um diretório, copiava o arquivo importante para ele, apagava . e mova o arquivo de volta. Em seguida, exclua o arquivo temporário.
mkdir temp
move a.c temp
erase *.*
move temp\* .
rmdir temp
FOR %f IN (*.*) DO IF NOT [%f]==[a.c] DEL /Q %f
%f
pode ter espaços no nome do arquivo.
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%
são a raiz da árvore a percorrer e o arquivo para evitar a exclusão, respectivamente. O que é ^
e por que estamos passando quatro tokens por arquivo para o Del
comando?
Para velocidade, eu uso delen :
delen /! a.c
O TCC / LE também possui umdel
comandomais poderoso:
del /[!a.c] *
del /[!a.c] *
yeldsInvalid switch - "[!a.c]".