MS DOS

[Fermé]
Signaler
-
Messages postés
760
Date d'inscription
samedi 29 mars 2014
Statut
Membre
Dernière intervention
8 septembre 2018
-
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

Messages postés
2231
Date d'inscription
samedi 25 octobre 2014
Statut
Membre
Dernière intervention
22 février 2020
1 877
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.

@+
Messages postés
2231
Date d'inscription
samedi 25 octobre 2014
Statut
Membre
Dernière intervention
22 février 2020
1 877
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"
Messages postés
2231
Date d'inscription
samedi 25 octobre 2014
Statut
Membre
Dernière intervention
22 février 2020
1 877 >
Messages postés
2231
Date d'inscription
samedi 25 octobre 2014
Statut
Membre
Dernière intervention
22 février 2020

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"
)
)
Messages postés
760
Date d'inscription
samedi 29 mars 2014
Statut
Membre
Dernière intervention
8 septembre 2018
115
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