Bonjour,
J'aimerai savoir si il y a un moyen se supprimer tout les fichiers vieux de 10 jours situés dans plusieurs sous dossiers et dossiers.
Merci
Bonjour,
J'aimerai savoir si il y a un moyen se supprimer tout les fichiers vieux de 10 jours situés dans plusieurs sous dossiers et dossiers.
Merci
Tu peux essayer quelque chose dans ce genre
Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 @echo off setlocal enabledelayedexpansion set "Year=%DATE:~6,4%" set "Month=%DATE:~3,2%" set "Day=%DATE:~0,2%" set /a "TimeStamp=(((Year * 365) + ((Month - 1) * 30)) + Day) - 10" for /r "%cd%\test" %%a in (*) do ( for /f "tokens=1" %%b in ("%%~ta") do ( for /f "tokens=1-3 delims=/" %%c in ("%%b") do ( set /a "FileTimeStamp=(((%%e * 365) + ((%%d - 1) * 30)) + %%c)" if !FileTimeStamp! LSS %TimeStamp% del /q "%%~dpnxa" ) ) ) pause
Le gourou dicte la ligne (de commande) à suivre ...
Penser à lire le Tutoriel Batch ou a consulter la FAQ Batch et ses contributions,
ainsi que le Cour sur la ligne de commande et des scripts
merci beaucoup,si je desire augmenter le nombre de jour(vieux de 30 jours ) quel parametres faut il changer?
Dans la ligne qui créé le timestamp de référence, "10" est le nombre a changé
Le code se déroule ainsi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part set /a "TimeStamp=(((Year * 365) + ((Month - 1) * 30)) + Day) - 10"
Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 @echo off setlocal enabledelayedexpansion set "Year=%DATE:~6,4%" set "Month=%DATE:~3,2%" set "Day=%DATE:~0,2%" :: Création d'un timestamp de référence (la date courante moins le nombre de jour voulue). set /a "TimeStamp=(((Year * 365) + ((Month - 1) * 30)) + Day) - 10" :: Le répertoire "%cd%\test" est parcouru à la recherche de tous les fichiers :: La date de création du fichier est récupèré :: La date de création du fichier est parsé :: Un timestamp de la date de création du fichier est créé :: Si le timestamp de la date de création du fichier est inférieur au timestamp de référence, le fichier est supprimé. for /r "%cd%\test" %%a in (*) do ( for /f "tokens=1" %%b in ("%%~ta") do ( for /f "tokens=1-3 delims=/" %%c in ("%%b") do ( set /a "FileTimeStamp=(((%%e * 365) + ((%%d - 1) * 30)) + %%c)" if !FileTimeStamp! LSS %TimeStamp% del /q "%%~dpnxa" ) ) ) pause
Le gourou dicte la ligne (de commande) à suivre ...
Penser à lire le Tutoriel Batch ou a consulter la FAQ Batch et ses contributions,
ainsi que le Cour sur la ligne de commande et des scripts
Petite question j'ai un fichier qui a 39 jours(créé a 10h15 ), j'ai fait qu'en sorte il soit supprimer à 39 jours ( pour test,test effectue à 12h) et impossible,il se supprime si je le mets à 38jours .est ce qu'il y aurait une subtilité?
est ce que l'execution peut se faire sans que l'on click dessus,j'aimerai qui s'execute via le planificateur de tache.le planificateur le lance bien ,mais il ne purge pas les fichiers.
Salut,
perso j'utiliserais FORFILES :
Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 @echo off forfiles /p "C:\ton\chemin" /S /D -39 /C "cmd /c del @path"
à adapter à ta situation...
![]()
Partager