AutoIt Français

Nouveau forum : http://www.autoitscript.fr/
 
AccueilFAQRechercherS'enregistrerMembresGroupesConnexionhttp://www.autoitscript.fr

Partagez | 
 

 script suppression automatique[RÉSOLU]

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
coxforce
Débutant
Débutant


Nombre de messages : 5
Age : 32
Localisation : Strasbourg
Date d'inscription : 19/12/2006

MessageSujet: script suppression automatique[RÉSOLU]   2006-12-19, 17:05

Bonnour tout le monde.
Comme dit dans ma présentation, je ne connais pas grand chose en programmation, et ce coup la j'ai du mal.:pale:
Voila mon problème.
Je dois réaliser un petit script sous AutoIt qui permet de supprimer des fichiers dans un même répertoire qui ont + de 2 jours. Et le problème, c'est que je ne sais pas par ou commencer.
J'ai cherché sur le web, mais j'ai rien trouvé (j'ai trouvé des choses sous Linux, mais ça va pas aller...)
Si vous pouviez m'aider ce serait vraiment sympa.
Merci à tous
@+ Coxforce
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
TerminAdminAtor
Admin
Admin


Nombre de messages : 234
Date d'inscription : 22/10/2006

MessageSujet: Re: script suppression automatique[RÉSOLU]   2006-12-19, 17:44

Bienvenue coxforce,

tout d'abord il te faut avoir installé autoit v3 et l'éditeur SciTE (tu trouve tout ça sur le site officiel) sur lequel tu vas taper les lignes de code.

Avec l'installation, il y a un fichier d'aide, en anglais, avec toutes les commandes et une fonction de recherche...

Pour effacer un fichier dans le répertoire où tu execute le script je te propose ça:

[code]FileDelete ( @WorkingDir & '\nom_du_fichier')[/code]

FileDelete() est la commande, entre parenthèses se mettent les paramètres pour faire "fonctionner" la commande, @WorkingDir est une maccro -comme tout ce qui est précédé par "@", dans ce cas la macro te renvoie le chemin de l'endroit duquel le script est executé!!

& set à attacher le chemin renvoyé par la macro @WorkingDir avec le nom du fichier. Sinon il ne faut pas oublier de mettre les mot entre ' ou " et pour avoir un chemin d'accès juste de mettre "\" avant le nom du fichier.

Exemple: si on mettait @WorkingDir&'texte.txt' on aurait c:\dossiertexte.txt, donc si on met @WorkingDir&'\texte.txt' on obtien c:\dossier\texte.txt.

Voilà quelques bases;)

Sinon dis moi si les fichiers ont toujours un nom précis ou si ça change tout le temps.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://autoit-fr.realbb.net
VooDoo
Modérateur
Modérateur


Nombre de messages : 161
Date d'inscription : 11/12/2006

MessageSujet: Re: script suppression automatique[RÉSOLU]   2006-12-19, 20:43

Oui il faut savoir si il faut faire une recherche des fichiers ayant plus de 2 jours parmi d'autre fichier ou si tous ton repertoire contient des fichiers de polus de deux jours. dans ce cas on suprime le repertoire et on le recrée juste apres x)

Sinon s'il faut faire une recherche il faut "voir" les fichiers et, avec un if, selectionner les bons.

Un petit exemple :

[code]

#include <File.au3>
#include <Date.au3>

$FileList=_FileListToArray(@ScriptDir,"*.*",1)
If (Not IsArray($FileList)) and (@Error=1) Then
MsgBox (0,"","Pas de fichier dans: " & @ScriptDir)
Exit
EndIf

For $i=1 to $Filelist[0]

$date=filegettime(@scriptdir & "/" & $Filelist[$i])

Msgbox(0,$Filelist[$i],"Aujourd'hui: " & $Date[0] & "/" & $date[1] & "/" & $date[2] & @Lf & "Date du fichier: " & _DateAdd( 'd',2, _NowCalcDate()) & @lf & "Difference entre les deux dates:" & Abs (_datediff("D",_nowcalc(),$Date[0] & "/" & $date[1] & "/" & $date[2])))

If Abs(_datediff("D",$Date[0] & "/" & $date[1] & "/" & $date[2],_NowCalcDate())) > 2 then

Msgbox(0,"ordre","je devrais effacer : " & @scriptdir & "/" & $Filelist[$i])

EndIf

Next

[/code]

Un peu d'explication:
[list=1]
[*][b]$FileList: [/b]variable qui a en memoire tous les fichiers situé à coté du script.( @scriptdir = le chemin du script )
[*][b]Boucle for[/b]: On demarre a un dans l'incrementation de [b]Filelist [/b]car Filelist[0] renvoye le nombre de fichier qui se trouve a coté du script. Au moment du Filegettime il ne peut pas faire Filegettime(nombre) donc on demarre à un.
[*][b]_datediff()[/b]: je fais une difference de date entre celle d'aujourd'hi donné par [i]_NowCalcDate() [/i]et celel du fichier que je vais rechercher avec [i]filegettime()[/i].
[*][b]if[/b]: je fais une condition en valeur absolue qui est en faite la difference entre la date du fichier et la date du Pc. Si c'est superieur à 2 => efface
[/list]Voila je n'ais pas mis le [b]Filedelete() [/b]mais j'ais laissé les msgbox() pour que vous puissiez voir coment sa se passe. Bonne chance.

_________________
[img]http://img87.imageshack.us/img87/7941/autoit6oy.jpg[/img]
[url=http://autoit-fr.realbb.net/AutoIt-v3-c2/Entraide-f5/Regles-t39.htm][i]Lisez les règles ou soyez maudit ![/i][/url]
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
coxforce
Débutant
Débutant


Nombre de messages : 5
Age : 32
Localisation : Strasbourg
Date d'inscription : 19/12/2006

MessageSujet: Re: script suppression automatique[RÉSOLU]   2006-12-20, 12:16

Merci pour ces réponses.
Les fichiers sont dans le même répertoire et sont tous du même type. C'est des fichiers .log en fait.
Dans ton code Voodoo, qu'est ce que je dois modifier?
Merci en tous cas.
@+ Coxforce
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
VooDoo
Modérateur
Modérateur


Nombre de messages : 161
Date d'inscription : 11/12/2006

MessageSujet: Re: script suppression automatique[RÉSOLU]   2006-12-20, 20:12

cela depend de ton utilisation. Le script au dessus ne rempli que la fonction "cherche un fichier de plus de deux jours".

Sinon pour le rendre operationnel tu dois deja changer le chemin de recherche. c'est a dire remplacer tous les @scriptdir par ton chemin. Genre "c:/fichierlog/".
Apres je n'ais pas mis le Filedelete() et les msgbox ne serve que à la phase de test donc à la fin tu as sa :

[code]


#include <file.au3>
#include <date.au3>

$chemin="" ;rentre le chemin ici

$FileList=_FileListToArray($chemin,"*.*",1)
If (Not IsArray($FileList)) and (@Error=1) Then
MsgBox (0,"","Pas de fichier dans: " & $chemin)
Exit
EndIf

For $i=1 to $Filelist[0]

$date=filegettime($chemin & "/" & $Filelist[$i])

If Abs(_datediff("D",$Date[0] & "/" & $date[1] & "/" & $date[2],_NowCalcDate())) > 2 then

Filedelete( $chemin & "/" & $Filelist[$i])
EndIf

Next
[/code]

Ps @ admin: dans les balise Code impossible de mettre en couleur comme dans le forum officiel ? sa arrangerais la lisibilité

_________________
[img]http://img87.imageshack.us/img87/7941/autoit6oy.jpg[/img]
[url=http://autoit-fr.realbb.net/AutoIt-v3-c2/Entraide-f5/Regles-t39.htm][i]Lisez les règles ou soyez maudit ![/i][/url]
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
coxforce
Débutant
Débutant


Nombre de messages : 5
Age : 32
Localisation : Strasbourg
Date d'inscription : 19/12/2006

MessageSujet: Re: script suppression automatique[RÉSOLU]   2006-12-21, 13:47

Alors voila les tests.
Le script trouve bien les fichiers, m'indique le nombre, la différence entre les dates, mais me les supprimes quand même tous!!
Voila le code:

#include <File.au3>
#include <Date.au3>
$FileList=_FileListToArray("c:\new\","*.xls",1)
If (Not IsArray($FileList)) and (@Error=1) Then
MsgBox (0,"","Pas de fichier dans: " & "c:\new\")
Exit
EndIf
Msgbox (0,"",$Filelist[0])
For $i=1 to $Filelist[0]
$date=filegettime("c:\new\" & $Filelist[$i])
If Abs(_datediff("D",$date[0] & "/" & $date[1] & "/" & $date[2],_NowCalcDate())) > 2 then
Filedelete("c:\new\" & $Filelist[$i])
EndIf

Next
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
coxforce
Débutant
Débutant


Nombre de messages : 5
Age : 32
Localisation : Strasbourg
Date d'inscription : 19/12/2006

MessageSujet: Re: script suppression automatique[RÉSOLU]   2006-12-21, 17:03

C'est bon j'ai trouvé!! Merci à tous ceux qui m'ont aider. Le code final:

#include <file.au3>
#include <date.au3>
$chemin="c:\new\" ;rentre le chemin ici
$FileList=_FileListToArray($chemin,"*.xls",1)
If (Not IsArray($FileList)) and (@Error=1) Then
Exit
EndIf
For $i=1 to $Filelist[0]
$date=filegettime($chemin & $Filelist[$i])

If Abs(_datediff("D",$Date[0] & "/" & $date[1] & "/" & $date[2],_NowCalcDate())) > 2 then
Filedelete( $chemin & $Filelist[$i])
EndIf

Next


@+ Coxforce
Et merci encore
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
TerminAdminAtor
Admin
Admin


Nombre de messages : 234
Date d'inscription : 22/10/2006

MessageSujet: Re: script suppression automatique[RÉSOLU]   2006-12-21, 23:38

Bon boulot;)
C'est un script sympa en plus:D
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://autoit-fr.realbb.net
Contenu sponsorisé




MessageSujet: Re: script suppression automatique[RÉSOLU]   Aujourd'hui à 10:41

Revenir en haut Aller en bas
 
script suppression automatique[RÉSOLU]
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» suppression automatique de forums inactifs
» Suppression Automatique des Membres
» Suppression de membres inactifs
» Suppression automatique des comptes au bout de 60 jours.
» Script connexion automatique ChatBox et message de rappel

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
AutoIt Français :: AutoIt v3 :: Entraide-
Sauter vers: