
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