{vbs} effacer dossier le plus ancien

Résolu/Fermé
kalimbra Messages postés 469 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 7 octobre 2014 - 27 janv. 2010 à 16:15
CMP Messages postés 1947 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 5 décembre 2015 - 13 juil. 2010 à 23:55
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 jeudi 29 juillet 2004 Statut Contributeur Dernière intervention 25 novembre 2013 435
27 janv. 2010 à 17:28
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 samedi 22 mars 2008 Statut Membre Dernière intervention 7 octobre 2014 72
28 janv. 2010 à 08:23
Ca marche du tonnerre de Dieu.. merci beaucoup..;
0
tompols Messages postés 1273 Date d'inscription jeudi 29 juillet 2004 Statut Contributeur Dernière intervention 25 novembre 2013 435
28 janv. 2010 à 11:08
Re,
Ok, mais ne pas oublier de mettre en "résolu" la prochaine fois ;)
0
kalimbra Messages postés 469 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 7 octobre 2014 72
28 janv. 2010 à 11:17
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 jeudi 10 janvier 2008 Statut Membre Dernière intervention 5 décembre 2015 350
13 juil. 2010 à 23:55
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