Bonsoir a tous,
je vous sollicite, parce que ça fait un petit moment que je n'ai pas utiliser autoit, et du coup je suis perdu...
voila mon problème :
j'aimerais faire un script qui efface tout les fichier/et sous dossier d'un dossier sauf 3.
dans mon cas
le script doit effacer tout le contenu du dossier c:\EBP
exepté :
- le sous dossier commun et tout son contenu
- le sous dossier demo et tout son contenu
- le sous dossier demo.agr1 et tout son contenu
voili voilou
merci d'avance !!!
[R] Effacer tous les fichiers d'un dossier sauf 3 dossiers
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] Effacer tous les fichiers d'un dossier sauf 3 dossiers
Modifié en dernier par markham le ven. 20 nov. 2009 14:07, modifié 2 fois.
- sylvanie
- Niveau 11

- Messages : 1556
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
Re: [..]effacer tous les fichier d'un dossier sauf 3 dossier
Comme ça à vue de nez, je copierai les 3 rep dans un temporaire, j'efface tout et je restaure la coipe, c'est peu élégant mais c'est moins prise de tête que de tout lister puis effacer en fonction du nom .
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
- Tlem
- Site Admin

- Messages : 11798
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Effacer tous les fichiers d'un dossier sauf 3 dossiers
Il y a ici des fonctions permettant le listing de fichiers/dossiers d'un répertoire et de ses sous répertoires.
Il est possible d'utiliser l'exclusion de répertoires ou fichiers et dans ce cas de supprimer tout sauf ce qui n'est pas listé.
Je ne suis pas sure que les deux premières fonction gère cela correctement, mais la dernière oui (par contre il faut travailler avec la dernière Bêta de AutoIt).
Il est possible d'utiliser l'exclusion de répertoires ou fichiers et dans ce cas de supprimer tout sauf ce qui n'est pas listé.
Je ne suis pas sure que les deux premières fonction gère cela correctement, mais la dernière oui (par contre il faut travailler avec la dernière Bêta de AutoIt).
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é".
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é".
Re: [..] Effacer tous les fichiers d'un dossier sauf 3 dossiers
re: Merci pour vos reponse...
j'ai pris la version simple de copier les dossier puis de les remettre apres,
par contre je n'arrive pas a trouver la commande qui efface tout le contenu d'un dossier. je patauge avec fileremove et dirremove...., et je voudrais évite de recourir a des commandes dos...
Merci d'avance.
j'ai pris la version simple de copier les dossier puis de les remettre apres,
par contre je n'arrive pas a trouver la commande qui efface tout le contenu d'un dossier. je patauge avec fileremove et dirremove...., et je voudrais évite de recourir a des commandes dos...
Merci d'avance.
Re: [..] Effacer tous les fichiers d'un dossier sauf 3 dossiers
c bon j'ai fini
j'ai piqué des fonctions et des idée un peu partout au hasard sur le forum
alors je remercie tout ceux qui m'ont aidé intentionnellment ou non
si vous avez des suggestion pour l'optimiser n'hesitez pas !
voila ce que ça donne :
voili voilou !
j'ai piqué des fonctions et des idée un peu partout au hasard sur le forum
alors je remercie tout ceux qui m'ont aidé intentionnellment ou non
si vous avez des suggestion pour l'optimiser n'hesitez pas !
voila ce que ça donne :
Code : Tout sélectionner
Opt("MustDeclareVars", 1)
#Include <File.au3>
#Include <Array.au3>
; déclaration des variables
LOCAL $avListe_fichiers
LOCAL $iCtr
LOCAL $sAttributs
;création d'un répertoire temporaire
DirCreate("c:\tmpebp")
;mise en sureté des dossier a garder
DirMove("C:\ebp\common","c:\tmpebp\common",1)
DirMove("C:\ebp\demo","c:\tmpebp\demo",1)
DirMove("C:\ebp\demo.agr1","c:\tmpebp\demo.agr1",1)
Sleep(3000)
; on affiche le message pour faire patienter l'utilisateur
SplashTextOn("", "...Nettoyage d'EBP en COUR....", 400, 70, -1, -1, 0 + 1 + 16 + 32, "Times New Roman", 12, 800)
; on met une pause pour que l'utilisateur puisse lire le message
Sleep(1000)
; on récupère la liste des fichiers et dossiers dans un tableau
$avListe_fichiers = _FileListToArray("C:\EBP")
; si le dossier contient des fichiers, on continue
If @error = 0 Then
; on va traiter les éléments du tableau un par un
For $iCtr = 1 To $avListe_fichiers[0]
; on récupère l'attribut de l'élément pour savoir si c'est un fichier ou un dossier
$sAttributs = FileGetAttrib("C:\EBP" & '\' & $avListe_fichiers[$iCtr])
; si on a réussi à lire l'attribut, on continue
If @error = 0 Then
; si l'attribut correspond à un dossier
If StringInStr($sAttributs, "D") Then
; on supprime le dossier
DirRemove("C:\EBP" & '\' & $avListe_fichiers[$iCtr], 1)
; sinon l'attribut correspond à un fichier
Else
; on supprime le fichier
FileDelete("C:\EBP" & '\' & $avListe_fichiers[$iCtr])
EndIf
EndIf
Next
EndIf
;on remet les dossier en place
DirMove("c:\tmpebp\common","C:\ebp\common",1)
DirMove("c:\tmpebp\demo","C:\ebp\demo",1)
DirMove("c:\tmpebp\demo.agr1","C:\ebp\demo.agr1",1)
; et on efface le dossier temporaire
DirRemove("c:\tmpebp",1)
; on efface le message
SplashOff()
