Code pour compter et supprimer dossiers

buffy -  
 angel -
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. buffy
     
    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
    0
  2. angel
     
    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é.
    0
  3. angel
     
    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
    0