Bonjour,
je cherche à faire un petit script qui efface tous les fichiers d'un lecteur dont la taille est supérieure à 1 Mo et la date de modification est inférieure au 01/01/2005.
Est-ce possible dans un petit fichier bat ?
Merci.
Bonjour,
je cherche à faire un petit script qui efface tous les fichiers d'un lecteur dont la taille est supérieure à 1 Mo et la date de modification est inférieure au 01/01/2005.
Est-ce possible dans un petit fichier bat ?
Merci.
Oui.Envoyé par Filippo
et un petit batch, un !
Syntaxe d'XP si je me souviens bien.
Code : 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96 @echo off rem TRI.CMD rem Supprime les fichiers d'un répertoire ayant une date de dernier accés antérieure à la date du jour. rem Attention si exécution vers 23h 59mn :-) :: Use codepage 437 mode con: codepage select=437>nul rem mémorise le répertoire courant PUSHD rem Les variables crée dans ce batch ont une portée local, ie jusqu'a l'utilisation de EndLocal SetLocal rem Extrait la partie jour de la variable d'environnment DATE contenant la date courante ( sous XP seulement ) SET Jour=%DATE:~0,2% rem Extrait la partie mois SET Mois=%DATE:~3,2% rem Extrait la partie année SET Annee=%DATE:~6,4% rem Permet le calcul de la date rem 27032004 >22042004 rem 20040327<20040422 SET DateCourante=%Annee%%Mois%%Jour% rem Répertoire de départ SET StartDirectory=C:\temp cd /D "%StartDirectory%" rem Parcours le répertoire %StartDirectory% call ::Traite "%StartDirectory%" rem Parcours tous les sous-répertoire du répertoire %StartDirectory% For /F "tokens=*" %%I in ('DIR /S /aD /B') do call ::Traite "%%I" Goto FIN rem ------------------------------------------------------------------------------------------- :Traite rem Se place dans le répertoire %1 Title %1 cd /D %~1 rem Fichier contenant les fichiers cibles SET Directory_SortDate=%TEMP% SET SortDate=AllFile.txt SET SortDateFile=%Directory_SortDate%\%SortDate% rem Fichier final formaté SET Directory_Result=%TEMP% SET Result=Resultat.txt SET ResultFile=%Directory_Result%\%Result% Del %ResultFile% rem Recherche uniquement les fichiers classés par date du dernier accés et sans séparateur de milliers pour la taille de fichier rem Affiche la date du dernier accés et supprime les lignes "parasite" en début et fin de commande DIR Echo Tri des fichiers DIR /a-D /oD /Ta /-C|Findstr /b "0 1 2 3" >%SortDateFile% rem Le fichier %SortDateFile% contient 4 champs/tokens: Date heure taille nom rem On récupére la date,qui est convertie en nombre, et le nom du fichier que l'on écrit dans un fichier intermédaire. Echo Modification de la date des fichiers For /F "tokens=1,2,3,4*" %%I in ('type "%SortDateFile%"') do call ::SetDate %%I "%%L" rem Affiche les fichiers antérieure à la DateCourante FOR /F "Tokens=1,2 Delims=;" %%a IN ('type "%ResultFile%"') DO IF (%%a) LSS (%DateCourante%) ECHO Fichier %%b : %%a inférieure à %DateCourante% rem Retour à l'instruction appelante Goto :EOF rem ------------------------------------------------------------------------------------------- :SetDate rem Reconstruit la date d'un fichier. Obtient un nombre en supprimant le délimiteur '/' for /f "tokens=1-3 delims=/" %%A in ('echo %1') do set MaDate=%%C%%B%%A rem Le paramétre %2 est écrit sans les guillements Echo %MaDate%;%~2>>%ResultFile% rem Retour à l'instruction appelante goto :eof rem ------------------------------------------------------------------------------------------- rem ------------------------------------------------------------------------------------------- :FIN echo %datecourante% rem supprime les variables inutiles rem remplace la suite d'instruction rem SET Jour= rem SET Mois= rem ... EndLocal rem Rétablie le répertoire courant POPD Title Traitement terminé : %0
A tester et à adapter
Le traitement se fait en deux passes
1 on recherche avec la commande DIR les fichiers > 1 Mg
2 on traite le fichier résultant de 1 pour filter la date
Super !
Merci Laurent.
Je teste demain.
De rienEnvoyé par Filippo
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager