Effacer fichiers repertoire.bat

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Script batch de maintenance
Rôle Purger les fichiers d'un partage réseau
Critère Taille < 3 Mo conservée, sinon supprimée
Voir aussi Batch · Routines (batch)

Effacer fichiers repertoire.bat monte un lecteur réseau, parcourt récursivement son contenu et supprime les fichiers dont la taille dépasse un seuil (ici 3 Mo), en journalisant chaque action. Il illustre l'usage de net use, d'une boucle for /R et d'une sous-routine appelée par call.

Script

@echo off

rem ******** Variables *******

set LOG=D:\Prod\logs\
set FicLOG=Suivi_IMP.log

rem ******** fin variables *********
Net Use j: /DELETE
net use j: \\hostname\PARTAGE /user:DOMAINE\utilisateur motdepasse /PERSISTENT:NO

j:

set fichier="j:\*.*"

for /R j: %%a in (*) do call :OKDOK "%%a"
goto :EOF

:OKDOK
set taille=%~z1
rem echo %1	%taille%
if %taille% LSS 3000000 (

rem echo fichier %1 trop petit. taille=%taille% >> %LOG%%FicLOG%

) else (

echo fichier %1 correct. taille=%taille% >> %LOG%%FicLOG%
echo fichier %1 correct. taille=%taille%

rem ******** commande d'effacement du fichier *********
del /F /Q %1
echo fichier %1 effacé >> %LOG%%FicLOG%

)

IF %ERRORLEVEL%==0 goto OK

:KO
echo *** Net use KO *** le %date% a %time:~0,7% >> %LOG%%FicLOG%
set resexe=1
goto EOF

:OK
echo *** Net use OK *** le %date% a %time:~0,7% >> %LOG%%FicLOG%
set resexe=0
goto EOF

:EOF
echo ### Fin de Traitement ### >> %LOG%%FicLOG%
echo "" >> %LOG%%FicLOG%

Les identifiants de connexion (/user:DOMAINE\utilisateur motdepasse) et le nom du partage doivent être remplacés par ceux de votre environnement.

Voir aussi