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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  purge d'un répertoire sur critére de date

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

purge d'un répertoire sur critére de date

n°878986
profiler42
Posté le 21-10-2004 à 14:53:41  profilanswer
 

Bonjour à tous,
 
J'ai un répertoire nommé Echange (partagé sous win 2000 en réseau) qui sert pour le stockage temporaire de fichiers (ou de répertoires)
Je souhaite supprimer automatiquement les fichiers vieux de plus de N jours, y compris dans les sous-répertoires.
 
- J'ai essayé l'utilitaire deldate mais celui ne semble pas récursif et n'accepte en tout cas pas les espaces.
 
- J'ai tenté un mix de deldate avec des commandes batch mais je bloque encore sur les noms de répertoires avec espace.
 
Connaissez vous un moyen (sans achat de soft type delenda) pour réaliser cette opération ?
 
Sinon, comment supprimer les espaces dans les noms de répertoires créés par les utilisateurs ?
 
Merci d'avance

mood
Publicité
Posté le 21-10-2004 à 14:53:41  profilanswer
 

n°879070
Arrakeen
Posté le 21-10-2004 à 15:53:29  profilanswer
 

voila une solution qui marche :
 

Code :
  1. @echo off
  2. set N=4
  3. for /F "usebackq tokens=1-4 delims=/ " %%i in (`echo %date%`) do (
  4. set  /A currentdate=%%l%%k%%j
  5. )
  6. set /A datetodel=%currentdate%-%N%
  7. for  /R %CD% %%i in (*.*) do (
  8. set file="%%i"
  9. set filedate=%%~ti
  10. call :PROCESSDEL
  11. )
  12. goto EXIT
  13. :PROCESSDEL
  14. for /F "usebackq tokens=1-4 delims=/ " %%i in (`echo %filedate%`) do (
  15. set /A filedate2=20%%k%%j%%i
  16. if %filedate2% LEQ %datetodel% echo je delete le fichier %file%
  17. )
  18. :EXIT


 
remplace juste la ligne qui contient ton N
et celle ou tu vas deleter le fichier (ici je fais juste un echo)


Message édité par Arrakeen le 21-10-2004 à 15:53:45
n°879090
profiler42
Posté le 21-10-2004 à 16:08:32  profilanswer
 

Je vais tâcher de comprendre comment ça marche...
 
Merci pour le coup de main.

n°879742
profiler42
Posté le 22-10-2004 à 09:23:29  profilanswer
 

Arrakeen a écrit :


remplace juste la ligne qui contient ton N
et celle ou tu vas deleter le fichier (ici je fais juste un echo)


 
Salut Arrakeen, j'ai encore besoin de tes lumières...
 
j'ai compris le fonctionnement dans l'ensemble, mais je ne pige pas les lignes 12 et 13 :
 
for  /R %CD% %%i in (*.*)
 
Comment définir le chemin de mon répertoire à traiter (c:\Echange)pour lancer le script depuis un autre endroit que le répertoire courant ?
 
C'est quoi %CD% ?
 
Merci
 
 
 
 

n°879779
Arrakeen
Posté le 22-10-2004 à 10:08:07  profilanswer
 

iop iop,
 
%CD% est une variable prédéfiie qui désigne le repertoire courant d'ou tu lances le .bat.
tu peux evidemment mettre le repertoire que tu veux :
 

Code :
  1. for  /R C:\Echange %%i in (*.*) do (


 
ligne 13 sinon ? set file="%%i" ?
 
bah je recupere le nom du fichier que je met entre guillemets
pour que les noms de repertoire et/ou de fichiers contenant des espaces
ne soit pas un probleme...
 
++
 
Arrakeen

n°880194
profiler42
Posté le 22-10-2004 à 16:24:27  profilanswer
 

Merci pour tes précisions. J'ai eu grâce à toi une bonne base de travail.
 
J'ai du batailler un peu pour arriver à un résultat.
La ligne 25 ne voulait pas s'exécuter.
 
J'ai fini par trouver qu'il fallait mettre "%filedate2%" et "%datetodel%" entre guillemets.
 
Sinon, à l'occase je chercherai le moyen de s'affranchir du changement de mois.
 
En effet si je met N=7 et que j'exécute (par mégarde bien sûr) le script le 02 10 2004, j'obtiens datedel=20040995 au lieu de 20040925...
 
A une prochaine, merci encore.


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

  purge d'un répertoire sur critére de date

 

Sujets relatifs
Mise en forme d'un datecompteur de visiteurs avec ip et date uniquement en php
afficher date[PHP] Timestamp de la date 2004-10-13 16:33:03 ? comment faire?
[CSS] plusieurs critere pour @media.printhtaccess sur un repertoire et tous ses fichiers
htaccess sur un repertoire et tous ses fichiersLister les fichiers contenus dans un répertoire (débutant)
Affichage de la liste des fichiers dans un répertoirepb de date avec BETWEEN
Plus de sujets relatifs à : purge d'un répertoire sur critére de date


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