Comment supprimer des fichiers datant de plus de « x » jours

By Flavien ROUX

Ce VBScript peut être utilisé pour supprimer les fichiers d’un dossier qui sont plus anciens qu’un certain nombre de jours par rapport à la date de dernière modification du fichier. Cet exemple recueille les entrées de l’utilisateur concernant le dossier source, le nom du fichier journal et le nombre de jours pour comparer l’horodatage de la dernière modification du fichier.

Veuillez noter que ce script va SUPPRIMER des fichiers. Soyez prudent car il n’y a pas beaucoup de code ci-dessous pour valider ce que vous entrez. Si vous fournissez au programme des entrées incorrectes, vous pouvez supprimer des fichiers qui n’étaient pas destinés à être ciblés.

vbscript pour supprimer les fichiers datant de plus d’un certain nombre de jours.
AVERTISSEMENT : Les fichiers supprimés ne seront pas stockés dans la corbeille.

‘Déclarer des variables
Dim LogFile

‘—– Start Main Sub —–
Main
Sub Main()
SourceFolderNamePath=inputbox(« Entrez le chemin de la source, ex. C:\Test\ »)
LogFileNamePath=inputbox(« Entrez le chemin du nom du fichier journal, ex. C:\Logs\Deleted.TXT »)
DeleteDaysOld=CInt(inputbox(« Entrez le nombre de jours au bout desquels un fichier doit être supprimé s’il est ancien, ex. 30 »))
Appeler DeleteOldFiles(SourceFolderNamePath,LogFileNamePath,DeleteDaysOld)
End Sub

Sub DeleteOldFiles(SourceFolder, logfile, days)
Dim fso,f,f1,s,fi, cnt, tot

LogOpen(fichier journal)
LogWrite « ——————————————————« 
LogWrite  » Programme démarré… Recherche de fichiers à supprimer « .
LogWrite « ——————————————————« 
cnt = 0
tot = 0

Const ReadOnly = 1
Set fso = CreateObject(« Scripting.FileSystemObject »)
Set f = fso.GetFolder(SourceFolder)
Set fc = f.Files
Pour chaque f1 dans fc
Si DateDiff (« d »,f1.DateLastModified, Now ) > days Alors
LogWrite f1.name &  » DateLastModified : » & f1.DateLastModified &  » DaysOld : » & DateDiff (« d »,f1.DateLastModified, Now )
Si f1.Attributes And ReadOnly Then
f1.Attributes = f1.Attributes Xor ReadOnly
End If

A lire également :  Clé USB la cybermenace : BadUSB

fso.DeleteFile (SourceFolder & f1.name)
cnt = cnt + 1End If
tot = tot + 1
Suivant
LogWrite « ————————————————————–« 
LogWrite  » Fichier(s) traité(s)  » & tot & « . Supprimé  » & cnt &  » fichier(s). « 
LogWrite « ————————————————————–« 
LogClose
MsgBox(« Le processus de suppression s’est achevé avec succès. » + vbCRLF + « Veuillez consulter le fichier journal à  » + logfile)

End Sub


Sub LogOpen (LogPath)
Dim fso, f1
Const ForAppend = 8
Set fso = CreateObject(« Scripting.FileSystemObject »)
Set LogFile = fso.OpenTextFile(LogPath, ForAppend, True)
Set fso = rien
End Sub

Sub LogWrite (Texte)
LogFile.WriteLine « [ » & Now & « ]  » & Text
End Sub


Sub LogClose ()
LogFile.Close
Set Logfile=nothing
End Sub

Laisser un commentaire