Suppression de fichiers : prise en compte des sous répertoires(vbs)
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:
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