[déplacé VB.NET -> VBS] Purge de dossier des fichiers datant de X jours [Résolu]

Messages postés
5
Date d'inscription
mercredi 28 juillet 2004
Statut
Membre
Dernière intervention
11 juillet 2009
- - Dernière réponse : PCPT
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
- 11 juil. 2009 à 01:50
Bonjour,

Je cherche un script qui puisse supprimer les fichiers et dossiers d'un répertoire datant de plus de X jours.

Le but est de faire une purge automatique d'un répertoire commun a plusieurs personnes.

J'ai trouvé quelques scripts correspondant a peut près a mon besoin, par exemple celui ci ( http://www.vbfrance.com/codes/SUPPRIME-FICHIERS-DATANT-PLUS-15-JOURS_33195.aspx ) mais le problème c'est que j'ai besoin que le script s'éxécute en silencieux sans avoir a intéragir avec celui ci.

Puisque je le lancerai en tache planifié.

Quelqu'un peut me donner un coup de main?

Merci d'avance !
Afficher la suite 

8 réponses

Meilleure réponse
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
23
3
Merci
 Bonsoir,

Recherche récursive sur les répertoires avec delete files si DateLastModified >= 15 jours.
Pour les folders, il faut tester si size=0.

Dim cpt_files, cpt_folders, strList
MsgBox FnListeDossier("D:\SCRIPTS", 15, strList),,"Result"

Function FnListeDossier(argPath, argDays, strList)
   Dim objFso, objSubFolderItem, objSubFileItem 
   Set objFso = CreateObject("Scripting.FileSystemObject")

   For Each objSubFolderItem In  objFso.GetFolder(argPath).SubFolders
       FnListeDossier objSubFolderItem.Path, argDays, strList
       If objFso.GetFolder(objSubFolderItem).Size = 0 Then
          strList = strList & vbCrLf & objSubFolderItem.DateLastModified & Space(3) & _
                    "Delete Folder: " & Space(1) & objSubFolderItem.Path
         'Supprimer le repertoire
''''''''''objFso.DeleteFolder objSubFolderItem.Path, True
         cpt_folders=cpt_folders+1
       End if
   Next

   For Each objSubFileItem In objFso.GetFolder(argPath).Files
       If DateDiff("d", FormatDateTime(objSubFileItem.DateLastModified, 2),Date) >= argDays Then
          strList = strList & vbCrLf & objSubFileItem.DateLastModified & Space(3) & _
                    "Delete File: " & Space(6) & objSubFileItem.Path
         'Supprimer le fichier
''''''''''objFso.DeleteFile objSubFileItem.Path
          cpt_files=cpt_files+1

       End If
       FnListeDossier = "Folders deleted:" & vbTab & cpt_folders & vbCrLf & _
                        "Files deleted:" & vbTab & cpt_files & vbCrLf & _
                         strList
   Next
   Set objFso = Nothing   
End Function

jean-marc

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_JMO
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
23
3
Merci
 Bonjour à tous,

correction:

          cpt_files=cpt_files+1
       End If
   Next
   FnListeDossier = "Folders deleted:" & vbTab & cpt_folders & vbCrLf & _
                    "Files deleted:" & vbTab & cpt_files & vbCrLf & _
                    strList
   Set objFso = Nothing  
End Function

jean-marc

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_JMO
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
25
0
Merci
salut,

ce code peut t'aider :
http://www.codyx.org/snippet_suppression-dans-repertoire-fichiers-non-modifies-depuis-jours_399.aspx#1347

sinon rien ne t'empêche de modifier la source que tu as cité

PS : il existe une rubrique VBS dans le forum, pourquoi ne pas l'utiliser?
topic déplacé

<hr size="2" width="100%" />
Commenter la réponse de PCPT
Messages postés
5
Date d'inscription
mercredi 28 juillet 2004
Statut
Membre
Dernière intervention
11 juillet 2009
0
Merci
Je n'avais pas trouver la rubrique VBS, désolé, merci je vais regarder le code que tu m'as envoyé.

Sinon je suis partit sur ce code qui ma l'air super, sauf qu'il ne fonctionne pas (moins cool) il se lance bien, mais voici le resultat que j'obtient :

C:\Documents and Settings\mguillerm\Desktop\Nouveau dossier (2)>cscript delete.vbs c:\test 7

Microsoft (R) Windows Script Host Version 5.7
Copyright (C) Microsoft Corporation. All rights reserved.

Will remove files from c:\test with a date older than 20090702 (7 days ago)
Total files in folder: 635
Deleted files: 0
Errors: 0
--- end of script execution ---

Le problème c'est que j'ai bien des fichiers qui date de plus de 7 jours dans ce dossier.. quelqu'un a une idée? voici le code :

http://blogs.msdn.com/benjguin/archive/2006/12/01/delete-old-files-script.aspx
Commenter la réponse de cs_mrutopik
Messages postés
5
Date d'inscription
mercredi 28 juillet 2004
Statut
Membre
Dernière intervention
11 juillet 2009
0
Merci
Je me suis avancé, le script fonctionne, par contre il ne supprime seulement les fichiers, j'aurai souhaité qu'il supprime également les dossiers et leurs contenus si possible, quelqu'un a une idée sur ce que je devrai rajouté/modifier dans le script pour faire ca?

Merci d'avance
Commenter la réponse de cs_mrutopik
Messages postés
5
Date d'inscription
mercredi 28 juillet 2004
Statut
Membre
Dernière intervention
11 juillet 2009
0
Merci
Merci beaucoup d'avoir pris la peine de m'aider :D

Par contre pour ton script, a priori il fonctionne bien pour vider les fichiers de tous les dossiers, mais j'aurai souhaité si possible qu'il supprime également tous les dossier du dossier racine (si possible)

Merci d'avance pour ceux qui pourront m'aider :D
Commenter la réponse de cs_mrutopik
Messages postés
5
Date d'inscription
mercredi 28 juillet 2004
Statut
Membre
Dernière intervention
11 juillet 2009
0
Merci
Merci beaucoup ça fonctionne a merveille ;)
Commenter la réponse de cs_mrutopik
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
25
0
Merci
ne pas oublier de valider la ou les bonnes réponses (bouton réponse acceptée) pour remercier et améliorer les résultats pour les futures recherches
Commenter la réponse de PCPT