122 votes

Supprimer récursivement les répertoires vides dans Windows

J'ai un répertoire sur ma machine Windows 7 qui contient des centaines, voire des milliers de sous-répertoires. Certains d'entre eux contiennent des fichiers, d'autres non. Je veux supprimer tous les répertoires vides.

En regardant la commande DOS del et rmdir, il ne semble pas que vous puissiez faire cela récursivement sans supprimer tous les fichiers. Existe-t-il un moyen de le faire à partir de la ligne de commande ?

141voto

caliban Points 19715

Vous pouvez utiliser Supprimer les répertoires vides utilitaire.

Vous pouvez également utiliser ce fichier batch en une seule ligne (à partir de DownloadSquad ):

for /f "delims=" %d in ('dir /s /b /ad ^| sort /r') do rd "%d"

(si elle est utilisée dans un fichier batch, remplacez %d con %%d )

Cela fonctionne parce que rd ne supprimera pas un répertoire qui contient des fichiers.

85voto

Varun Sharma Points 976

Vous pouvez également utiliser ROBOCOPY. Il est très simple et peut également être utilisé pour supprimer des dossiers vides dans une grande hiérarchie.

ROBOCOPY folder1 folder1 /S /MOVE

Ici, la source et la destination sont toutes deux folder1 En effet, il suffit de supprimer les dossiers vides, au lieu de déplacer les autres fichiers dans un autre dossier. /S option est de ne pas copier (déplacer, dans le cas ci-dessus) les dossiers vides. C'est également plus rapide car les fichiers sont déplacés à l'intérieur du même lecteur.

18voto

Comme Cygwin est livré avec GNU find, vous pouvez le faire :

find . -type d -empty -delete

Ou pour éviter le bruit lorsqu'un dossier n'existe plus :

find . -type d -empty -execdir rmdir {} +

7voto

Rob Kam Points 1788

L'utilité gratuite EmptyFolderNuker fait cela très bien, à partir d'un dossier de base de votre choix. Il supprime également les répertoires ne contenant que des sous-répertoires vides.

4voto

Daniel Mošmondor Points 554

Hmmm... peut-être même une solution plus simple :

for /d /r %d in (*.*) do rd "%d"

Lancez cette opération à partir du dossier dans lequel vous souhaitez que les dossiers vides soient supprimés.

/d - fonctionnera sur les dossiers, pas sur les fichiers /r - Récupère les sous-répertoires

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X