12
2009
[VBS] Supprimer les fichiers d’un repertoire en fonction de leur date de modification
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
Publicité :)
Articles récents
- Memento VI – Boostez Votre Productivité avec Vi : Trucs et Astuces à Connaître
- Configuration de Nginx pour Obtenir l’IP Réelle des Visiteurs avec CloudFlare
- Récupérer les informations d’un Ordinateur Terra à partir du numéros de série avec Python
- Grep – Extraire toutes les adresses IP d’un fichier text, Json, etc…
- Failed to Start File System Check – Vcenter 7
Mot-clefs
Commentaires récents
- Grep – Extraire toutes les adresses IP d’un fichier text, Json, etc… dans
- Grep – Extraire toutes les adresses IP d’un fichier text, Json, etc… dans
- Rotation des logs avec logrotate dans
- Hôte déconnecté sur le Vcenter. Impossible de se connecter à l’ESX. dans
- Pourquoi mon interface vlan ne veut pas devenir up ? dans
Il y a également la commande forfiles. Par exemple , pour supprimer tous les fichiers de plus de 30 jours du dossiers C:\TEST :
forfiles /P C:\TEST /D -30 /M *.* /C “cmd /c echo @path && del /F /Q @path”
Et bien, je ne connaissais pas. La prochaine fois que j’ai cette manip à faire, je testerais 😉 En tout cas merci!
dans le programe il a une petite erreur au niveaux du codage :
‘On verifie qu’ils ne sont pas en lecture seule
If File.Attributes And 1 Then File.Attributes = File.Attributes – 1
a File.Attributes – 1 se n’est pas un – mes un = et mettre un ‘devent tout les phrases explicative INPORTENT