Lister les repertoires dont le nom contient une chaine

fireced Messages postés 2 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 18 octobre 2006 - 12 oct. 2006 à 16:34
fireced Messages postés 2 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 18 octobre 2006 - 18 oct. 2006 à 19:12
Bonjour a tous,

Debutant en VBS, je cherche à lister tous les repertoires dont le nom contient telle ou telle chaine.

Dans mon cas, j'ai plusieurs repertoires qui portent le meme nom ("TransEnd") dans differents dossiers et j'aimerais pouvoir avoir 1 liste de tous ces repertoires, comment faire?

Voila ce que j'ai ecris:

strComputer = "."
 
Set objWMIService = GetObject("winmgmts:\" & strComputer & "\root\cimv2")
Set objFSO = CreateObject("Scripting.FileSystemObject")
rep = "[file://\\TransEnd\\ \\TransEnd\\]"


Set colFiles = objWMIService.ExecQuery _
    ("Select * from CIM_DataFile where Drive='D:' and Path = '" & rep & "' and Extension = 'dss'")
   
For Each objFile in colFiles
    Set objReadOnlyFile = objFSO.GetFile(objFile.Name)
 if DateDiff("d",objReadOnlyFile.DateLastModified ,Date)>15 then
 
     objFile.delete
end if
Next

Avec ceci, il ne me retourne que le repertoire "D:\TransEnd" or j'ai des sous dossiers dans lesquels j'ai egalement 1 repertoire "TransEnd" et il ne les trouvent pas.
Merci d'avance pour votre aide.

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
12 oct. 2006 à 19:51
Salut
Puisqu'on s'adresse au WMI au travers d'une requète de type SQL, les règles restent les mêmes :
"Select * from CIM_DataFile where Drive='D:' and Path Like '%" & rep & "%' and Extension = 'dss'"
Ca devrait marcher

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
12 oct. 2006 à 21:24
 Bonjour ,

Sans WMI, mais avec FSO.

jean-marc

Dim ShellO: Set ShellO = CreateObject("WScript.Shell")
Dim Fso: Set Fso = CreateObject("Scripting.FileSystemObject")
Dim Schemin : Schemin = "D:"            'Dossier à modifier
Dim Srepert : Srepert = "\TransEnd"
 
'Lister l'arborescence du dossier
ListerDossier Schemin, Fichier



Set ShellO Nothing: Set Fso Nothing: Set Fichier = NothingSet ObjRep Nothing: Set ObjSubRep Nothing
MsgBox "Script terminé"
 
Function ListerDossier(Schemin, Fichier) 'Lister l'arborescence du dossier
On Error Resume Next
Dim ObjRep: Set ObjRep = Fso.GetFolder(Schemin) 'dossier
Dim ObjSubRep: Set ObjSubRep = ObjRep.SubFolders 'sous-dossiers
Dim ObjSubRepItem
    For Each ObjSubRepItem In ObjSubRep 'Traiter chaque sous-dossiers
        ListerDossier ObjSubRepItem.Path, Fichier 'traiter les sous-dossiers
        If Right(ObjSubRepItem.Path, Len(Srepert)) = Srepert Then _
           MsgBox ObjSubRepItem.Path,,"Répertoire contenant " & Srepert
    Next
End Function
0
fireced Messages postés 2 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 18 octobre 2006
18 oct. 2006 à 19:12
Je vous remercie pour vos reponses, j'essaye vos methodes demain.
Je vous tiendrais au courant...
Encore merci ++
0
Rejoignez-nous