Voici un petit script que j’exécute en tâche planifiée pour purger un dossier commun sur notre serveur de fichier.
Il supprime récursivement tous les fichiers de plus de 15 jours et ensuite surprime tous les dossiers vides.
Il y a également la création d’un petit fichier de logs de ce qui à été supprimé qui est conservé 30 jours.
@echo on
set "tiret=-"
set datedujour=%date:~10,4%%tiret%%date:~4,2%%tiret%%date:~7,2%
pushd C:\scripts\Purge-commun\logs\
echo "Purge des fichiers de plus de 15 jours" > C:\scripts\Purge-commun\logs\log_purge_commun_%datedujour%.log
REM Modifification des attribus dans le dossier
attrib -s -h -r d:\commun\*.* /s /d
REM Purge des fichiers de plus de 15 jours
forfiles /P "D:\commun" /D -15 /S /C "cmd /C echo @path >> C:\scripts\Purge-commun\logs\log_purge_commun_%datedujour%.log"
forfiles /P "D:\commun" /D -15 /S /C "cmd /C del /F /Q @path >> C:\scripts\Purge-commun\logs\log_purge_commun_%datedujour%.log"
REM Suppression des fichiers Thumbs.db
del d:\commun\Thumbs.db /S >> C:\scripts\Purge-commun\logs\log_purge_commun_%datedujour%.log
REM Suppression des dossiers Vide
for /f "tokens=*" %%i in ('dir /s /b /ad D:\commun\* ^| sort /r') do rd "%%~i" >> C:\scripts\Purge-commun\logs\log_purge_commun_%datedujour%.log
REM Suppression des fichiers de logs qui ont plus de 30 jours
forfiles /P "C:\scripts\Purge-commun\logs\" /d -30 /C "cmd /c del @path" >> C:\scripts\Purge-commun\logs\log_purge_commun_%datedujour%.log
exit
Hello.
Cette ligne ne fonctionne pas correctement, pas de sortie de la commande del :
forfiles /P « D:\commun » /D -15 /S /C « cmd /C del /F /Q @path >> C:\scripts\Purge-commun\logs\log_purge_commun_%datedujour%.log »
Afin d’avoir les logs, il faut écrire ceci :
forfiles /P « D:\commun » /D -15 /S /C « cmd /C del /F /Q @path » >> C:\scripts\Purge-commun\logs\log_purge_commun_%datedujour%.log >> 2&1
Cordialement,
Helger
Bonjour possible que vous ayez du adapter de la sorte dans votre cas si vous avez des espaces dans le chemin de votre dossier.
Cordialement,
Christophe