{vbs} effacer dossier le plus ancien

Résolu
kalimbra Messages postés 546 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,
Configuration: Windows XP
Safari 532.8

4 réponses

  1. tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   460
     
    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
  2. kalimbra Messages postés 546 Statut Membre 72
     
    Ca marche du tonnerre de Dieu.. merci beaucoup..;
    0
  3. tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   460
     
    Re,
    Ok, mais ne pas oublier de mettre en "résolu" la prochaine fois ;)
    0
  4. kalimbra Messages postés 546 Statut Membre 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
    1. CMP Messages postés 2026 Statut Membre 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