Bonjour je suis admin réseau, je voudrais améliorer mon script de suppression de fichier .bak.

Ayant fait un peu le tour des forums j'ai réussi à récupérer un script me permettant de supprimer tous les fichiers vieux de 31 jours avec l'extension .bak. J'ai remarqué que le script ne prenait pas en compte les sous dossiers.

La aussi il existe des scripts pour parcourir les sous dossiers mais mes connaissances vb ne me permettent pas de l'adapter a mon script. Pourriez vous me donner un coup de main s'il vous plait?

Mon script:

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
 Public function DeleteOlderFiles (ByVal FoldersToProcess, ByVal MaxDayAge, ByVal Extension)
 
    Dim FolderArray
    Dim FolderPath
    Dim objFSO
    Dim ObjFolder
    Dim ObjFile
    Dim FileAge
    Dim ErrorNumber
 
    If DebugMode = 1 Then
    Wscript.echo "DeleteOlderFiles() function"
    End If
 
    Set objFSO = CreateObject("Scripting.FileSystemObject")
 
    FolderArray = Split(FoldersToProcess, ";")
    For Each FolderPath In FolderArray
    If objFSO.FolderExists(FolderPath) Then
    If DebugMode = 1 Then
    Wscript.echo "Process " & FolderPath & " folder"
    End If
 
    Set ObjFolder = objFSO.GetFolder(FolderPath)
    For Each ObjFile In ObjFolder.Files
    'Wscript.echo "File " & ObjFile.Name
    If ExtensionFichier(ObjFile.Name) = Extension Then
    FileAge = DateDiff("d", ObjFile.DateCreated, Now())
    If DebugMode = 1 Then
    Wscript.echo "File " & ObjFile.Name & " have " & FileAge & " day(s)"
    End If
 
    If FileAge > MaxDayAge Then
    If DebugMode = 1 Then
    Wscript.echo "Deleting " & ObjFile.Name
    End If
 
    Err.Clear
    On Error Resume Next
    Call objFSO.DeleteFile(objFile.Path)
    ErrorNumber = Err.Number
    On Error goto 0
    Select Case NumeroErreur
    Case 0
    If DebugMode = 1 Then
    Wscript.echo "Done"
    End If
    Case Else
    Wscript.echo "Error for deleting file : " & Err.Description
    End Select
 
    End If
    End If 'If ExtensionFichier(ObjFile.Name) = "bak" Then
    Next
 
    Set ObjFolder = Nothing
    Else
    Wscript.echo "Folder " & FolderPath & " dont exist"
    End If
    Next
 
    Set objFSO = Nothing
 
    End Function
 
    Public Function ExtensionFichier(ByVal CheminFichier)
 
    'Retourne l'extension du fichier
    Dim Position
    ExtensionFichier = ""
 
    Position = InStrRev(CheminFichier,".")
 
    If (Position > 0) And (Position < Len(CheminFichier)) Then
    ExtensionFichier = Mid(CheminFichier,Position+1)
    ExtensionFichier = Lcase(ExtensionFichier)
    End If
 
    End Function
 
    Call DeleteOlderFiles("D:\",31,"bak")
Merci d'avance