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

Résolu
cs_mrutopik Messages postés 5 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 juillet 2009 - 9 juil. 2009 à 11:31
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre 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 !

8 réponses

cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
10 juil. 2009 à 00:14
 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
3
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
10 juil. 2009 à 15:50
 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
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
9 juil. 2009 à 12:12
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%" />
0
cs_mrutopik Messages postés 5 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 juillet 2009
9 juil. 2009 à 12:20
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_mrutopik Messages postés 5 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 juillet 2009
9 juil. 2009 à 16:46
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
0
cs_mrutopik Messages postés 5 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 juillet 2009
10 juil. 2009 à 10:51
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
0
cs_mrutopik Messages postés 5 Date d'inscription mercredi 28 juillet 2004 Statut Membre Dernière intervention 11 juillet 2009
11 juil. 2009 à 00:05
Merci beaucoup ça fonctionne a merveille ;)
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
11 juil. 2009 à 01:50
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
0
Rejoignez-nous