Magazine High tech

[VBS] Supprimer les fichiers d’un repertoire en fonction de leur date de modification

Publié le 12 novembre 2009 par Crocodanser

Voici un script écrit en VBS qui permet de nettoyer un répertoire. Ce script est équivalent à la commande linux :

find /rep –mtime +5 –exec rm –f {} \;

Voici le script :

‘Les declarations
‘Repertoire ou sont stockes les fichiers
DossierSauvegarde = "C:\TEST\"
‘Nombre de jours de conservation des Fichiers
AgeMaximalFichiers = "30"
‘Comptage des fichiers effaces
NbFichiersEffaces = 0
‘Initialisation des objets
Set fso = CreateObject("Scripting.FileSystemObject" )
‘On verifie que le repertoire de sauvegarde existe
If (myName = Winrep = fso.FolderExists(DossierSauvegarde)) = False Then
   Erreur = MsgBox("Le dossier de sauvegarde est introuvable !" )
   Wscript.Quit
End If
‘On recupere la date systeme
DateSysteme = Date
‘On apelle la fonction d’effacement
Clean(DossierSauvegarde)
‘Fonction d’effacement des fichiers
Sub Clean(FolderPath)
Set Folder = fso.Getfolder(FolderPath)
‘On appelle recursivement la fonction s’il y a des sous dossiers
Set SubFolder = Folder.SubFolders
   For Each CurrentFolder in SubFolder
   Clean CurrentFolder.Path
   Next
‘On efface les fichiers dans le dossier courant
For Each File In Folder.Files
   If (DateDiff("d", File.DateLastModified, DateSysteme) > CInt(AgeMaximalFichiers)) Then
   ‘On verifie qu’ils ne sont pas en lecture seule
   If File.Attributes And 1 Then File.Attributes = File.Attributes – 1
   File.Delete()
   NbFichiersEffaces = NbFichiersEffaces + 1
   End If
Next
End Sub
‘On affiche un joli message
MsgBox (Cstr(NbFichiersEffaces) + " fichiers ont ete effaces" )

Il faut indiquer le dossier à nettoyer (DossierSauvegarde) et la durée de rétention (AgeMaximalFichiers).

J’ai trouvé ce script sur http://forum.hardware.fr/hfr/WindowsSoftware/Logiciels/suppression-fichiers-fonction-sujet_247096_1.htm

Partager :

Retour à La Une de Logo Paperblog

A propos de l’auteur


Crocodanser 15 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte