[R] Script pour supprimer des dossiers de plus de x jours

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
westbam
Niveau 1
Niveau 1
Messages : 9
Enregistré le : ven. 18 juil. 2008 14:42
Status : Hors ligne

[R] Script pour supprimer des dossiers de plus de x jours

#1

Message par westbam »

salut , j'ai une petite question.
sur un serveur win2003 , j'ai un repertoire contenants des dossiers de sauvegardes.
le hic est que cela prend beaucoup de place avec le temps .
je cherche un moyen de faire un roulement avec un script en taches planifiers, qui supprime automatiquement les fichiers ayant par exemple plus de 15jours ....

quelqu'un a une idée , pour la mise en oeuvre ???

merci d'avance

cordialement
Modifié en dernier par Tlem le ven. 05 sept. 2008 23:38, modifié 3 fois.
Raison : Ajout de la balise [..] dans le titre.
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] script supprimer des dossiers ayant plus de x jours

#2

Message par jbnh »

Salut, avec ms dos on peut tout faire.

Par exemple : pour lister tous les dossiers d'un endroit (disons C:\), faire: cd c:\ puis dir /ad et ensuite : dir > myfile.txt pour avoir toutes les infos dans un txt. Il suffira alors de faire un petit tri pour récupérer les dates de créations.

Ca t'intéresse?
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
tolf
Niveau 7
Niveau 7
Messages : 318
Enregistré le : ven. 15 févr. 2008 12:25
Localisation : Paris
Status : Hors ligne

Re: [..] script supprimer des dossiers ayant plus de x jours

#3

Message par tolf »

_FileListToArray pour lister tous les fichiers d'un dossier (après pour explorer les sous-dossiers utilise les résultats (fichiers et dossiers) de cette fonction).
Lisez la documentation d'AutoIt en français (et participez svp :mrgreen:) !

Mes UDF :
[/i][/b]
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] script supprimer des dossiers ayant plus de x jours

#4

Message par jbnh »

@tolf, ca servirai à quoi d'avoir sous forme d'array la liste des dossiers?
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] script supprimer des dossiers ayant plus de x jours

#5

Message par sylvanie »

Le tableau, c'est un peu lourd en effet...
pour sélectionner les dossier à supprimer soit on parse le fichier sortie avac des stringsplits.
Ou bien, on a joute /B (affichage des nom de rep tout court) et on utilise FileGetTime sur chaque rep
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] script supprimer des dossiers ayant plus de x jours

#6

Message par Tlem »

sylvanie a écrit :Le tableau, c'est un peu lourd en effet...
C'est peut être lourd, mais c'est déjà tout fait. :P
http://www.autoitscript.fr/forum/viewto ... f=21&t=479
Rapide et tellement simple à l'utilisation ...

@jbnh : Batch c'est effectivement bien, mais avec des noms avec accent et autre, ça ne fonctionne pas bien du tout. :lol:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] script supprimer des dossiers ayant plus de x jours

#7

Message par jbnh »

OK je suis bien d'accord, mais le but n'est-t-il pas de checker la date de tous les fichiers? Comment vous vous y prenez par la suite?
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] script supprimer des dossiers ayant plus de x jours

#8

Message par Tlem »

Comme ceci :

Code : Tout sélectionner

#include<_FileListToArrayNew2h.au3>
#include <Date.au3>

Dim $ListFile = _FileListToArray3 ("c:\RepX", "*.txt", 1, 1, 1,"Temp|TMP")

For $i = 1 to $ListFile[0]
    $T = FileGetTime($ListFile[$i], 1) ; On récupère la date de création.
    $FTime = $t[0] & "/" & $t[1] & "/" & $t[2] & " " & $t[3] & ":" & $t[4] & ":" & $t[5] ; On convertit la date pour le _DateDiff.
    IF _DateDiff('D', $FTime, _NowCalc()) > 15 Then FileDelete($ListFile[$i]) ; Contrôle de la différence de jours et suppression.
Next
Attention ce script supprime des fichiers, à essayer avec une grande prudence.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Script pour supprimer des dossiers de plus de x jours

#9

Message par sylvanie »

un consolewrite à la place du FileDelete serait en effet pas mal dans un premier temps pour tester ^^
par contre à vu d'oeuil ça ne gère pas le récursif, ou je me trompe ?
ceci dit selon le contexte, on n'en a peut être pas besoins.
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Script pour supprimer des dossiers de plus de x jours

#10

Message par Tlem »

La fonction _FileListToArray3() gére parfaitement le récursif. ;)

Code : Tout sélectionner

_FileListToArray3($sPath, $sFilter = "*", $iFlag = 0, $iRecurse = 0, $iBaseDir = 1, $sExclude = "")
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Script pour supprimer des dossiers de plus de x jours

#11

Message par sylvanie »

Autant pour moi,je n'avais pas fait attention au "3" de _FileListToArray3 ... qui est effectivement plus riche
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Répondre