MS DOS

Surok -  
codeurh24 Messages postés 760 Date d'inscription   Statut Membre Dernière intervention   -
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

DelNC Messages postés 2234 Date d'inscription   Statut Membre Dernière intervention   2 004
 
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.

@+
0
DelNC Messages postés 2234 Date d'inscription   Statut Membre Dernière intervention   2 004
 
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"
0
DelNC Messages postés 2234 Date d'inscription   Statut Membre Dernière intervention   2 004 > DelNC Messages postés 2234 Date d'inscription   Statut Membre Dernière intervention  
 
Voilà, 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"
)
)
0
codeurh24 Messages postés 760 Date d'inscription   Statut Membre Dernière intervention   123
 
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
0