{vbs} effacer dossier le plus ancien

Résolu
kalimbra Messages postés 469 Date d'inscription   Statut Membre Dernière intervention   -  
CMP Messages postés 1947 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

complétement rouillé au niveau du vbs, je galère un peu pour faire un petit script VBS. Je chercher à effacer le sous répertoire le plus ancien dans un répertoire donné.

En fait il s'agit de backups, mais sur des disques externes différents (un par semaine). Du coup Cobian n'arrive pas à gérer le nombre limité de backup qu'il faut garder.

Je voudrais donc lancer un petit script vbs avant ma tâche pour trouver le nom du répertoire le plus ancien et l'effacer.

J'ai trouvé plusieurs scripts mais tous effacent des dossiers plus vieux que X jours par rapport à la date du jour. Moi je voudrais juste récupérer la date de création / modification la plus ancienne, le nom de ce dossier et l'effacer..

tout aide sera la bienvenue,

merci d'avance,
A voir également:

4 réponses

tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   435
 
Salut,
à tester mais ça devrait le faire :
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set MonRep=FSO.GetFolder("D:\MonDossier")

datemin = Date()

for each sf in monrep.subfolders
	If sf.datelastmodified < datemin then
		datemin = sf.datelastmodified
		chemin = sf.path
	end if
next

set rep_to_delete = FSO.GetFolder(chemin)

rep_to_delete.delete
0
kalimbra Messages postés 469 Date d'inscription   Statut Membre Dernière intervention   72
 
Ca marche du tonnerre de Dieu.. merci beaucoup..;
0
tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   435
 
Re,
Ok, mais ne pas oublier de mettre en "résolu" la prochaine fois ;)
0
kalimbra Messages postés 469 Date d'inscription   Statut Membre Dernière intervention   72
 
en fait j'étais en train de modifier ton code pour y mettre une condition de taille dispo sur le disque. Je comptais le faire après ..

du coup je poste le code modifié, si ça peut servir à quelqu'un d'autre.


'Script pour effacer plus vieux répertoire dans un dossier
'Si espace restant inférieur à nécessaire
'calcul de l'espace restant
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objDrive = objFSO.GetDrive("G:")  'Vérifier si lettre correcte 

Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set MonRep=FSO.GetFolder("G:\BCKPS") 'vérifier chemin

datemin = Date()

for each sf in monrep.subfolders
	If sf.datelastmodified < datemin then
		datemin = sf.datelastmodified
		chemin = sf.path
	end if
next

set rep_to_delete = FSO.GetFolder(chemin)

if objDrive.AvailableSpace/1073741824 < 1024 then 'taille à définir en Go
rep_to_delete.delete
end if
0
CMP Messages postés 1947 Date d'inscription   Statut Membre Dernière intervention   350
 
Salut,
je voudrais utiliser ce script, si je comprends bien on peut definir la taille qui doit rester disponible en go, mais je ne sais pas comment et ou exactement inscrire 5 Go par exemple

if objDrive.AvailableSpace/1073741824 < 1024 then 'taille à définir en Go
rep_to_delete.delete

merci à l'avance
0