MS DOS

Bonjour,

Je cherche à créer un script bat afin de compter le nombre de fichier dans un répertoire, et ensuite, si ce nombre est supérieur à 10 vider ce répertoire.
Etant vraiment débutante si vous avez des réponses très claires et basiques je suis preneuse.

Merci d'avance

2 réponses

  1. créer un fichier bat dans le dossier des fichiers a supprimer.
    si il y a 10 fichiers il seront tous supprimés sauf le fichier bat

    @echo off
    set /a compteurBoucle=0
    setlocal ENABLEDELAYEDEXPANSION

    rem Compte le nombre de fichier
    for /r .\ %%X in (*.*) do (
    set /a compteurBoucle=compteurBoucle+1
    echo !compteurBoucle!
    rem si on compte 10 fichiers
    rem on ce rend a la ligne :deletable
    if !compteurBoucle!==2 goto deletable
    )
    goto end

    :deletable
    echo Effacement
    rem pour chaque fichier
    for /f "delims=" %%f in ('dir /b') do (
    rem si le fichier en cour, n'est pas le ficher bat executé
    rem on supprime ce fichier
    IF NOT "%%f" == "%~nx0" DEL /F /Q "%%f"
    )

    :end
    echo Fin

    pause
    1. Bonjour

      Code en batch
      Voilà déjà un bout de code qui compte le nombre de fichiers dans le répertoire
      Pour l'instant ça met le résultat dans le fichier resultat.txt

      echo off   
      
      for /r "nom_repertoire" %%i in (*.*) do set /a compt+=1
          echo %compt%
          echo %compt% >>resultat.txt
      )

      Moi aussi je débute dans ce langage.
      Je vais essayer de faire la partie qui supprime les fichiers.

      @+
      1. J'ai trouvé comment supprimer tous les fichiers du répertoire.

        Mais je ne sais pas trop comment mettre la condition si plus de 10 fichiers mais je sais mettre une date limite (date de plus de x jours)

        @echo off
        forfiles /d -1 /p nom_repertoire /s /c "cmd /c del @path"
      2. @DelNCVoilà, je pense que ça devrait marcher avec ce code

        echo off   
        for /r "C:\Users\mougi\Desktop\dossier_sous_dossier_fichier" %%i in (*.*) do set /a compt+=1
        echo %compt%
        if %compt% GTR 10 (
        forfiles /d -1 /p C:\Users\mougi\Desktop\dossier_sous_dossier_fichier /s /c "cmd /c del @path"
        )
        )