Ce code est ecrit en Vbscript, pour dans un dossier effacer les fichiers et dossiers en fonction de leur derniere date de modification.
je suis un debutant, en fait j'ai appris le vbs en faisant ce script (je ne suis pas developpeur mais admin reseaux)
je l'ai commenté le plus possible pour les debutants, il y a des fonctions que l'on peut reprendre : "recursive, appel de fonction, utilisation du FSO, ..."
soyez indulgent, je poste plus pour les debutants qui galére, comme j'ai galeré, que pour la posteritée (^^) un peut de fiertée personnelle quand meme.
je n'ai pas trouvé de source qui y resemble (ou alors pleins de sources qui faut assenbler ) si elle existe deja supprimer la !
Source / Exemple :
on error resume next
'declaration des variables
Dim folder
dim Subfolder
dim path
Dim FSO
Dim B
'instantation du file system object (FSO)
Set FSO = CreateObject("Scripting.FileSystemObject")
'initialisation de la variable contenant le chemin du repertoire racine
path = "D:\test_transit\Transit"
'appel de la fonction recurcive avec comme argument le chemin du repertoire
'racine
recurcive path
function recurcive(chemin) 'fonction récurcive pour traiter tout l'arboresence
'des dossiers
set folder = FSO.GetFolder (chemin) 'utilisation du FSO pour prendre le dossier
'racine
set Subfolder = folder.SubFolders 'definition de la varibale pour les S/dossiers
for each A in Subfolder 'pour chaque dossier dans le sous dossier racine
Set fic = A.Files 'definition de la variables toucher les fichier des dossier
fichier fic 'appel de la fontion fixhier
recurcive A 're-appel de la fonction recurcive pour traiter les S/dossiers
next
end function 'fin de la fonction
function fichier(fic) 'fonction qui traite les fichiers dans les dossiers A
For Each objFile in fic 'pour chaque fichier dans dossiers de fichier
Set f = fso.GetFile(objfile) 'utilisation du FSO pour prendre le fichier
If DateDiff("D", objfile.DateLastModified, now) > 10 Then 'si la derniére modification du fichier est plus ancienne que X jours
msgbox objfile & " a suprimer" 'alors effacer le fichier avec option de forcer pour les fichier en lecture seule
'FSO.DeleteFile f, force = yes
end if 'fin du SI
next
end function 'fin de la fonction
Set fic = folder.Files
fichier fic
set folder = FSO.GetFolder (path)'utilisation du FSO pour prendre le dossier
For Each B in folder.subfolders 'pour chaque dossier dans le dossier racine
If B.size = 0 Then 'si la taille du dossier est egal a 0 (donc vide)
msgbox B & B.size 'effacer le dossier
'FSO.DeleteFolder B, force = yes
End If 'fin du SI
Next
Conclusion :
j'ai mis en commentaire les commandes pour la supresion et mis des MSGBOX a la place par securitée (ne rigoler pas on ne sait jamais !)
j'attend vos remarques, critiques, amelorations possibles
MERCI !