Lister les repertoires dont le nom contient une chaine
fireced
Messages postés2Date d'inscriptionvendredi 28 novembre 2003StatutMembreDernière intervention18 octobre 2006
-
12 oct. 2006 à 16:34
fireced
Messages postés2Date d'inscriptionvendredi 28 novembre 2003StatutMembreDernière intervention18 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.
A voir également:
Lister les repertoires dont le nom contient une chaine
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 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