[DOS] Supprimer dossiers vides

aKuma59 Messages postés 105 Statut Membre -  
_Maniak_ Messages postés 124 Statut Membre -
Bonsoir,

Savez vous comment supprimer tout les dossiers vides d'un répertoire ? (via un batch)

Merci d'avance,
Cordialement,
Morgan.
A voir également:

5 réponses

aKuma59 Messages postés 105 Statut Membre 6
 
Up ?
0
thanassos Messages postés 2624 Statut Contributeur 137
 
Bonjour,
à défaut de DOS tu peux toujours utiliser ce programme qui marche très bien
https://www.clubic.com/telecharger-fiche43422-remove-empty-directories.html
0
aKuma59 Messages postés 105 Statut Membre 6
 
Bonjour,

Merci mais le but est de n'avoir qu'un .bat au final,
Je ne peux rien avoir d'autre.

D'autres propositions ? :)
0
aKuma59 Messages postés 105 Statut Membre 6
 
up ?
0
cs-bilou Messages postés 836 Statut Membre 164
 
Tien essaye un truc comme ça:

@echo off  
set dossier=c:\windows  
setlocal enableDelayedExpansion 
for /f "delims=""" %%i in ('dir "%dossier%" /b /s') do ( 
 if %%~xiB==B ( 
  set fichier=0 
  for /f "delims=""" %%j in ('dir "%%i" /b /s') do set /a fichier+=1
  if !fichier! NEQ 0 rmdir "%%i" /s /q  
  )  
)  
pause



Bilou
Il y a des jours faut pas m'chercher.
Et y'a des jours tous les jours !
0
Christophe7492 Messages postés 2 Statut Membre
 
Attention, batch dangereux !!! Il supprime tout le contenu de tous les dossiers ! A ne surtout pas utiliser !!!
0
_Maniak_ Messages postés 124 Statut Membre 9 > Christophe7492 Messages postés 2 Statut Membre
 
rmdir /s /q supprime le contenu de tous les dossiers, mais seulement rmdir sans option ne supprime que les dossiers vides.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Maniak
 
La commande:
For /R ''C:\Chemin\Absolue'' /D %x in (''*'') do (rd ''%x'')


/!\ Lors du copier/coller, effacer et rééditer les Guillemets ! /!\
Et Lors de l'utilisation de cette commande via un fichier .bat,
la variable %x devient %%x




La commande signifie :

Je cherche la variable (correspondante à des noms de dossiers) dans toutes les arborescences existantes à partir de C:\Chemin\Absolue. (La variable étant : TOUT)
Nous allons donc effectuer la commande « Supprimer un répertoire vide » sur tous les dossiers de chaque arborescences en partant de C:\Chemin\Absolue.

Ce qui oblige à exécuter la commande plusieurs fois... Car, un dossier contenant un dossier vide est plein (logique), mais une fois le dossier vide supprimer, ce dossier anciennement plein devient vide...

du coup, dans ton fichier .bat, tu fais tout simplement:

For /R ''C:\Chemin\absoludossier'' /D %%x in (''*'') do (rd ''%%x'')
For /R ''C:\Chemin\absoludossier'' /D %%x in (''*'') do (rd ''%%x'')
For /R ''C:\Chemin\absoludossier'' /D %%x in (''*'') do (rd ''%%x'')
For /R ''C:\Chemin\absoludossier'' /D %%x in (''*'') do (rd ''%%x'')
For /R ''C:\Chemin\absoludossier'' /D %%x in (''*'') do (rd ''%%x'')
For /R ''C:\Chemin\absoludossier'' /D %%x in (''*'') do (rd ''%%x'')
For /R ''C:\Chemin\absoludossier'' /D %%x in (''*'') do (rd ''%%x'')

....le nombre de fois que nécessaire !

N'oublie pas de rééditer les Guillemets !!!!
0

Discussions similaires