web-dev-qa-db-fra.com

Commande MS-DOS pour supprimer tous les fichiers sauf un

Existe-t-il une commande MS-DOS qui me permet de supprimer tous les fichiers sauf un?

Prenons comme exemple les fichiers suivants:

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

Existe-t-il une commande pour supprimer tous les fichiers sauf a.c?

25
nunos

Vous pouvez utiliser les commandes for et if pour accomplir ceci:

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

Cela passe par le répertoire courant et compare chaque nom de fichier à un fichier a.c. Si cela ne correspond pas, le fichier est supprimé.

35
Kevin

Vous pouvez définir le fichier pour lire uniquement avant de tout supprimer

attrib +r a.c
del *.*
attrib -r a.c
15
feiht thief

Non, il n'y en a pas. Je ferais un répertoire, y copierais le fichier important, effacerais . , et déplacerais le fichier. Ensuite, supprimez le fichier temporaire.

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

Pour la vitesse, j'utilise delen :

delen /! a.c

TCC/LE a également une commande del plus puissante:

del /[!a.c] *
0
paradroid