Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2947 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Suppression de fichiers en fonction d'une date.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Suppression de fichiers en fonction d'une date.

n°1320539
alandon
Posté le 07-03-2006 à 20:38:40  profilanswer
 

Bonjour,
Je souhaiterais supprimer le contenu d'un répertoire vieux de X jours par rapport à la date du système.
je voudrais faire tout ça en batch ou a la rigueur en vbscript mais je ne sais pas comment faire, en cherchant sur google et ici, j'ai chopé ça:
 
 

Code :
  1. date/
  2. set jour=%%i
  3. set mois=%%j
  4. set annee=%%k
  5. del c:\sauvegarde c:\sauvegarde-%jour%-%mois%-%annee%


 
Si quelqu'un pouvait m'aider à faire cette "routine",  :hello:  :jap:

mood
Publicité
Posté le 07-03-2006 à 20:38:40  profilanswer
 

n°1320682
alandon
Posté le 08-03-2006 à 06:36:06  profilanswer
 

up

n°1324097
zarnagos
Posté le 13-03-2006 à 12:49:34  profilanswer
 

Salut Alandon
 
Je n'ai pas bien saisi ton problème. ce que tu souhaite c'est de récupérer la date du système il y a n jours ?  
 
bon première étape tu récupère la date système :  
 
rem recupere le premier mot avec separateur / et l'envoi dans la variable %jour%
for /f "tokens=1 delims=/ " %%a in ('date/t') do set jour=%%a
rem recupere le second mot avec separateur / et l'envoi dans la variable %mois%
for /f "tokens=2 delims=/ " %%b in ('date/t') do set mois=%%b
rem recupere le troisieme mot avec separateur / et l'envoi dans la variable %an%
for /f "tokens=3 delims=/ " %%b in ('date/t') do set an=%%b

 
Attention avec les tokens sur certains systèmes ce n'est pas les mêmes ! teste avant :)
 
après tu définis à combien de jour tu veux revenir dans le temps
 
set /A jourj=%jour% - X  
rem ou X désigne le nombre de jour à enlever
set /A mois=%mois% + 0
set /A an=%an%

 
Après ça se complique un peu tu teste le résultat de la valeur jourj
 
:encour
if /I %jourj% LEQ 0 goto MOIS
if /I %mois% GTR 0 goto jour

 
une fois que tu as testé la valeur de jourj tu détermine la valeur de mois en le testant et de proche en proche tu détermine l'année.
 
:MOIS
set /A mois=%mois% - 1
if %mois% EQU 0 set /A an=%an%-1
if %mois% EQU 0 set /A mois=12
goto reglej
 
:jour
if %mois%==1 goto SET31
if %mois%==2 goto BIS
if %mois%==3 goto SET31
if %mois%==4 goto SET30
if %mois%==5 goto SET31
if %mois%==6 goto SET30
if %mois%==7 goto SET31
if %mois%==8 goto SET31
if %mois%==9 goto SET30
if %mois%==10 goto SET31
if %mois%==11 goto SET30
if %mois%==12 goto SET31
goto ERROR
 
:SET31
if %jourj% LEQ 0 set /A jourj=31+%jourj%
if %jourj% LEQ 0 goto MOIS
goto DONE
 
:SET30
if %jourj% LEQ 0 set /A jourj=30+%jourj%
if %jourj% LEQ 0 goto MOIS
goto DONE
 
:BIS
set /A tt=%an% %% 4
if not %tt%==0 goto SET28
set /A tt=%an% %% 100
if not %tt%==0 goto SET29
set /A tt=%an% %% 400
if %tt%==0 goto SET29
 
:SET28
if %jourj% LEQ 0 set /A jourj=28+%jourj%
if %jourj% LEQ 0 goto MOIS
goto DONE
 
:SET29
if %jourj% LEQ 0set /A jourj=29+%jourj%
if %jourj% LEQ 0 goto MOIS
goto DONE
 
:DONE
 
if /i %jourj% LSS 10 set jourj=0%jourj%
if /i %mois% LSS 10 set mois=0%mois%
 
 
echo %an%%mois%%jourj%
 
set ladate=%an%%mois%%jourj%

 
parce que je suis sympa fait attention a deux exception les valeurs octales 08 et 09.
 
le jour ou tu tombe sur une valeur de jourj ou mois égale à 08 ou 09 lorsque tu va vouloir les retranchée ca fera une erreur.
 
pour cela il faut faire un test avant :
 
IF %jour% EQU 08 SET jour=8
IF %jour% EQU 09 SET jour=9
IF %mois% EQU 08 SET mois=8
IF %mois% EQU 09 SET mois=9

 
j'espère que cela t'a aidé a récupérer la date. pour supprimer les dossier je pense que tu sais le faire  
 
A+


Message édité par zarnagos le 01-02-2007 à 10:40:15
n°1324401
alandon
Posté le 13-03-2006 à 17:10:28  profilanswer
 

Merci beaucoup d'avoir répondu zarnagos, j'ai à peu près compris toutes tes lignes de programmes, mais de toute façon n'ayant pas eu de réponses plus tôt j'ai posté ici et on m'a répondu et ça me convient parfaitement:
http://forum.hardware.fr/hardwaref [...] m#t2350426
 
Je vais tester ce que tu as écris, en plus tu as bien détaillé.
 
:jap:

n°1960196
bagu
Posté le 25-01-2010 à 13:07:45  profilanswer
 

Désolé de déterrer ce vieux topic, mais j'ai eu besoin de faire la même chose, et j'ai trouvé un moyen bien plus simple ici :
 
http://www.infos-du-net.com/forum/ [...] iers-jours
 
En gros, on utilise l'utilitaire forfile en ligne de commande, et le tour est joué.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Suppression de fichiers en fonction d'une date.

 

Sujets relatifs
[PHP] Faire un menu en fonction des repertoiresreccuperer l'heure et la date en cours(du jour) dans un trigger ?
InnoSetup, fichiers avec accents français et windows chinoisFonction Cells.find mais quand il ne trouve rien?
Obtenir une ip en fonction d'un nom de domaine[PHP5] fonction qui liste les paramètres d'une méthode de classe
Prb recuperation de Date[Fonction Randomize]
Date systemSuppression de cookies
Plus de sujets relatifs à : Suppression de fichiers en fonction d'une date.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR