Supprimer le contenu d'un répertoire sous Windows en Batch.

Décidément, Windows continuera de me faire chmir. Il n'est même pas capable, en une commande simple, de supprimer le contenu d'un répetoire récursivement. Là ou sous *nix, j'aurais écrit

rm -r **

Sous Windows, il est impossible d'avoir la même syntaxe. En effet, si j'utilise la commande del, en écrivant

C:\test\> DEL /S /F /Q *

Cela ne supprimera que les fichiers, de manière récursive certes, mais pas les dossiers ! Mieux, si je tente

C:\test\> RMDIR /S /Q *
Syntaxe du nom de fichier, de répertoire ou de volume incorrecte.

J'ai carrément une erreur de syntaxe, il n'accepte pas le wildcard * ! Il y a un moyen que j'ai trouvé, c'est supprimer le répertoire, puis le recréer derrière. Moche, très moche, et infaisable dans mon cas, car c'est un répertoire partagé, avec des droits spécifiques, impossible a créer en lignes de commandes (enfin je n'ai pas eu envie de chercher). Alors j'ai du utiliser une boucle for pour supprimer ça :

C:\test\> for /D %i in (*) DO RMDIR /S /Q %i

Pfiouuu !

Damien Gustave

Read more posts by this author.