Code pour compter et supprimer dossiers

Bonjour,

j'aimerais trouver un code qui permet de compter les nombres de fichiers et fichiers afin de supprimer dans le même code les dossiers vides. je vous joins un exemple pour être un peu plus clair

Dans SFichiers\profil
j'ai par exemple 400 dossiers
chaque dossier peut contenir un ou plusieurs dossiers et des fichiers
C'est-à-dire:
sur les 400 dossiers (par exemple) :
* 50 dossiers contient d'autres dossiers
* 100 dossiers contient d'autres dossiers et fichiers
* 120 dossiers comporte que des fichiers
*130 dossiers sont vides

J'aimerais compter les dossiers et fichiers dans un dossiers afin de supprimer automatiquement les dossiers vides dans ce repertoire Sfichiers\profil
merci

3 réponses

  1. j'arrive sur le bureau (je teste sur mon bureau avant de la lancer en vrai sur le Sfichiers)
    à compter le nb de fichiers dans tous les dossiers. Maintenant je recherche un morceau de code permettant au code de donner le nb de fichiers par dossier pour voir ceux ou celui qui est ide afin de le supprimer via ce code.

    ----------------------------------------------

    @echo off
    
    :recup paramètre et changement de répertoire si non vide
    if not "%~1"=="" cd /d  "%~1"
    
    for /f "tokens=*" %%d in ('dir /a:-d /S ^| findstr /n /i "octets"') do call :MaxOctets "%%d"
    
    echo %RepSize% >>Liste.txt
    pause
    goto fin
    
    :MaxOctets
    set ligne=%~1
    for /f "tokens=3 delims= " %%i in ("%ligne%") do set Letype=%%i
    set Letype=%Letype:~0,1%
    if %Letype%==f for /f "tokens=2,3 delims= " %%i in ("%ligne%") do set RepSize=%%i %%j
    
    :fin
    


    ------------------------------------------------------
    merci
    1. bonjour
      essaye avec ce code qui devra être modifier car il affiche le propriétaire du dossier et le nombre totaux de fichiers présents dans ce répertoire

      ------------------
       @echo off
      
      for /F "tokens=2 delims=\" %%a in ('dir /q ^|findstr "^[0-9]"') do (
      	echo %%a
      	)>>ListePriprioDossier.doc	
      
      
      :recup paramètre et changement de répertoire si non vide
      if not "%~1"=="" cd /d "%~1"
      
      for /f "tokens=*" %%d in ('dir /a:-d /S ^| findstr /n /i "octets"') do call :MaxOctets "%%d"
      
      echo %RepSize% >>ListePriprioDossier.doc	
      pause
      goto fin
      
      :MaxOctets
      set ligne=%~1
      for /f "tokens=3 delims= " %%i in ("%ligne%") do set Letype=%%i
      set Letype=%Letype:~0,1%
      if %Letype%==f for /f "tokens=2,3 delims= " %%i in ("%ligne%") do set RepSize=%%i %%j
      
      :fin


      -----------------------------------
      Par contre je suis au taff je ne peux pas d'aider sur les modifications. si une autre personne arrive a trouver la solution pourriez nous la donné.
      1. voila j'ai pu grâce aux net trouver un code permettant de compter le nombre de fichiers dans un répertoire par dossiers et sous répertoires. (Code testé = fonctionne ) a l'améliorer pour vos prochaines manip.

        -----------------------------------------------------------------------------------------
        @echo off
        
        if not "%~1"=="" (
           set Chemin=%~1
        ) else (
           set Chemin=%~dp0
        )
        
        cd /d %Chemin%
        echo Etat du repertoire %Chemin% > Liste.txt
        echo. >> Liste.txt
        
        for /f "tokens=*" %%d in ('dir /a:-d /S ^| findstr /n /i "pertoire octets"') do call :Creerliste "%%d"
        
        rem affichage du resultat de recherche
        :ShowResult
        cls
        @echo on
        echo.
        set /p reponse=Voulez-vous visualiser le fichier de r'sultat (o/n) ?
        if /i "%reponse%"=="" start notepad %Chemin%Liste.txt & goto fin
        if /i "%reponse%"=="o" start notepad %Chemin%Liste.txt & goto fin
        if /i "%reponse%"=="n" goto fin
        goto ShowResult
        
        :Creerliste
        set ligne=%~1
        
        for /f "tokens=2 delims= " %%i in ("%ligne%") do set Rtype=%%i
        set Rtype=%Rtype:~0,1%
        if %Rtype%==R for /f "tokens=3* delims= " %%i in ("%ligne%") do echo Repertoire %%i %%j >> Liste.txt & set Rep=vrai & goto  fin
        
        for /f "tokens=3 delims= " %%i in ("%ligne%") do set Ftype=%%i
        set Ftype=%Ftype:~0,1%
        if %Rep%==faux (
           if %Ftype%==f echo Nombre total de fichiers de %Chemin% et des ses sous repertoires: >> Liste.txt
        )
        set Rep=vrai
        if %Ftype%==f for /f "tokens=2,3 delims= " %%i in ("%ligne%") do echo %%i %%j >> Liste.txt & set Rep=faux
        echo. >> Liste.txt
        @echo off
        
        
        :fin

        --------------------------------------------------------------------------
        Bonne fin de journée