Bonjour,

je viens vous énoncer mon problème, j'ai un script qui me permet de supprimer des fichiers/dossiers datant de x jours. script qui fonctionne très bien.

seulement voilà, j'aimerais y ajouter des conditions, notamment, interdire la suppression de certains dossier portant le nom xxx.
mais je suis un peu perdue, je sais pas par où commencer et comment faire pour imposer ce critère (et si c'est possible bien sur)

je vous montre le script à l'heure actuelle :

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
50
51
52
53
 
 
sPath = "C:\temp\" 
sOlderThanDays = 15 
sReportFiles = "Les fichiers suivants ont été nettoyés : " & vbCrLf 
sReportFilesCount = 0 
sReportFolders = "Les dossiers suivants ont été nettoyés : " & vbCrLf 
sReportFoldersCount = 0 
 
' Compute old date 
dOldDate = dateadd("d", 0 - sOlderThanDays, Now()) 
 
' Get base folder 
Set oFSO = CreateObject("Scripting.FileSystemObject" ) 
 
'On appelle la fonction de nettoyage
CleanFolder(sPath)
 
Sub CleanFolder(sCurrentPath) 
   ' select current folder 
   Set oFolder = oFSO.GetFolder(sCurrentPath)  
 
   ' Get subfolders 
   Set oSubFolders = oFolder.SubFolders 
 
   ' Do a recursive call if it contains subfolders 
   For Each oCurrentFolder in oSubFolders 
      CleanFolder oCurrentFolder.Path 
   Next  
 
   ' Get files in current folder 
   Set oFiles = oFolder.Files 
 
   ' Delete old Files 
    For Each oCurrentFile in oFiles 
      If oCurrentFile.DateCreated < dOldDate AND _ 
         oCurrentFile.DateLastModified < dOldDate Then 
         sReportFiles = sReportFiles & " - " & oCurrentFile.Path & "\" & oCurrentFile.Name & vbCrLf 
         oCurrentFile.Delete True 
         sReportFilesCount = sReportFilesCount + 1 
      End If 
   Next 
 
   Set oFiles = oFolder.Files 
   If oFiles.Count = 0 AND oFolder.Path & "\" <> sPath Then 
      sReportFolders = sReportFolders & " - " & oFolder.Path & "\" & vbCrLf 
      oFolder.Delete True 
      sReportFoldersCount = sReportFoldersCount + 1 
   End If 
 
End Sub 
 
MsgBox(Cstr(sReportFilesCount) + " fichiers ont ete effaces et " + Cstr(sReportFoldersCount) + " dossiers ont ete effaces")
je tiens à préciser que je débutes dans la programmation vbs, le script n'est pas de moi (mais je le comprends, c'est préférable... )

si vous avez une idée pour m'aiguiller je suis prenante, je sèche un peu là.

et si je suis pas très clair, dite-le moi.

Merci