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

cs_mrutopik 5 Messages postés mercredi 28 juillet 2004Date d'inscription 11 juillet 2009 Dernière intervention - 9 juil. 2009 à 11:31 - Dernière réponse : PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention
- 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 

Votre réponse

8 réponses

Meilleure réponse
cs_JMO 1855 Messages postés jeudi 23 mai 2002Date d'inscription 24 juin 2018 Dernière intervention - 10 juil. 2009 à 00:14
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

Merci cs_JMO 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_JMO
Meilleure réponse
cs_JMO 1855 Messages postés jeudi 23 mai 2002Date d'inscription 24 juin 2018 Dernière intervention - 10 juil. 2009 à 15:50
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

Merci cs_JMO 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_JMO
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 9 juil. 2009 à 12:12
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
cs_mrutopik 5 Messages postés mercredi 28 juillet 2004Date d'inscription 11 juillet 2009 Dernière intervention - 9 juil. 2009 à 12:20
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
cs_mrutopik 5 Messages postés mercredi 28 juillet 2004Date d'inscription 11 juillet 2009 Dernière intervention - 9 juil. 2009 à 16:46
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
cs_mrutopik 5 Messages postés mercredi 28 juillet 2004Date d'inscription 11 juillet 2009 Dernière intervention - 10 juil. 2009 à 10:51
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
cs_mrutopik 5 Messages postés mercredi 28 juillet 2004Date d'inscription 11 juillet 2009 Dernière intervention - 11 juil. 2009 à 00:05
0
Merci
Merci beaucoup ça fonctionne a merveille ;)
Commenter la réponse de cs_mrutopik
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 11 juil. 2009 à 01:50
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.