Bonjour,
je suis novice en vbscript et j'ai très peu de temps pour améliorer mon script.
Mon besoin: Avoir un script qui efface tous les fichiers qui sont plus vieux que 15 jours et effacer leur dossier si ces derniers sont vides. Il y a une condition à respecter, certains dossiers ne doivent pas être supprimés. (Ceux de la racine).
Les dossiers à ne pas supprimés:
Achat
Vente
R&D
Mon problème:
Avec mon script, les fichiers s'effacent et les dossiers vide également sauf si ces dossiers se trouvent dans un répertoire à ne pas supprimer.
Mon script actuel:
2ème requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 on error resume next 'Déclaration de variables Dim folder dim Subfolder dim path Dim FSO Dim B 'Création de l'objet Set FSO = CreateObject("Scripting.FileSystemObject") 'Chemin du Temp path = "\\chczabf0001\Data\Commun\Temp\Achats" 'Appel de la fonction recurcive avec comme argument le chemin du repertoire racine recurcive path 'Fonction récurcive pour traiter tout l'arboresence des dossiers function recurcive(chemin) set folder = FSO.GetFolder (chemin) 'Utilisation du FSO pour prendre le dossier racine set Subfolder = folder.SubFolders 'Définition de la varibale pour les S/dossiers for each A in Subfolder 'pour chaque dossier dans le sous dossier racine Set fic = A.Files 'definition de la variables toucher les fichier des dossier fichier fic 'appel de la fontion fichier recurcive A 're-appel de la fonction recurcive pour traiter les S/dossiers next end function function fichier(fic) 'fonction qui traite les fichiers dans les dossiers A For Each objFile in fic 'pour chaque fichier dans dossiers de fichier Set f = fso.GetFile(objfile) 'utilisation du FSO pour prendre le fichier If DateDiff("D", objfile.DateLastModified, now) > 15 Then 'si la derniére modification du fichier est plus ancienne que X jours 'msgbox objfile & " a suprimer" 'alors effacer le fichier avec option de forcer pour les fichier en lecture seule FSO.DeleteFile f, force = yes FSO.DeleteFile f 'end if 'fin du SI next end function 'fin de la fonction Set fic = folder.Files fichier fic set folder = FSO.GetFolder (path)'utilisation du FSO pour prendre le dossier For Each B in folder.subfolders 'pour chaque dossier dans le dossier racine If B.size = 0 Then 'si la taille du dossier est egal a 0 (donc vide) 'msgbox B & B.size 'effacer le dossier FSO.DeleteFolder B, force = yes End If 'fin du SI Next
Est-il possible de supprimer un dossier qui ne se trouve pas à la racine mais qui porte le même nom qu'un dossier que l'on ne veut pas supprimer?
Merci de votre aide
Partager