{vbs} effacer dossier le plus ancien
Résolu
kalimbra
Messages postés
546
Statut
Membre
-
CMP Messages postés 2026 Statut Membre -
CMP Messages postés 2026 Statut Membre -
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,
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,
Configuration: Windows XP Safari 532.8
4 réponses
-
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 -
-
Re,
Ok, mais ne pas oublier de mettre en "résolu" la prochaine fois ;) -
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-
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
-