DrumSHoTS
Messages postés2Date d'inscriptionvendredi 2 avril 2010StatutMembreDernière intervention 6 avril 2010
-
2 avril 2010 à 12:39
DrumSHoTS
Messages postés2Date d'inscriptionvendredi 2 avril 2010StatutMembreDernière intervention 6 avril 2010
-
6 avril 2010 à 11:42
Bonjour,
Je débute complètement en VBS et je cherche à afficher un message qui alerte sur la présence de fichiers de type *.doc ou *.xls dans un dossier précis (D:\Temporaire dans cet exemple).
Je suis presque au bout du code, mais je n'arrive pas en faire en sorte que celui-ci regarde aussi dans les sous-dossiers.
C'est à ce moment que j'ai besoin d'aide.
Dim i
i = 0
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2" )
Set colFiles = objWMIService.ExecQuery("Select * from CIM_DataFile where Drive= 'D:' " _
& "AND Path = '\\Temporaire\\' " _
& "AND Extension = 'doc'" _
& "OR Drive= 'D:' " _
& "AND Path = '\\Temporaire\\' " _
& "AND Extension = 'xls'" )
For Each objFile In colFiles
i = i + 1
Next
If i = 0 Then
MsgBox("Aucun fichier trouvé sur le bureau." )
Else
If i = 1 Then
Wscript.Echo "Un seul fichier a été trouvé sur le bureau."
Else
If i > 1 Then
Wscript.Echo i & " fichiers ont été trouvés sur le bureau."
End If
End If
End If
Ce script se contente de chercher dans D:\Temporaire, pas dans les sous-dossiers. J'ai essayé \\Temporaire\\*\\ ou \\*.*\\ mais ceci ne fonctionne pas.
DrumSHoTS
Messages postés2Date d'inscriptionvendredi 2 avril 2010StatutMembreDernière intervention 6 avril 2010 6 avril 2010 à 11:42
Bonjour,
Après ce long weekend, je me replonge dans le code, merci pour cette réponse jack.
J'ai essayé ces optimisations. Pour la 1ère et la 2ème tout va bien, mais pour la 3ème j'ai une erreur "0x80041017" avec code "8041017" source "(null)".
Donc j'ai gardé la 2ème solution :
Dim i
i = 0
strComputer = "."
Set objWMIService = GetObject ( "winmgmts:" & "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2" )
Set colFiles = objWMIService.ExecQuery ( _
" Select * from CIM_DataFile " & _
" Where Drive = 'D:' " & _
" AND Path = '\\Temporaire\\' " & _
" AND ( Extension = 'doc' " & _
" OR Extension = 'xls') " )
For Each objFile In colFiles
i = i + 1
Next
If i = 0 Then
MsgBox "Aucun fichier trouvé."
Else
If i = 1 Then
MsgBox "Un seul fichier a été trouvé."
Else
If i > 1 Then
MsgBox i & " fichiers ont été trouvés."
End If
End If
End If
Ce qui est beaucoup plus propre que ce que j'avais fait.
Par contre, il me reste le problème de recherche dans les sous-dossiers du dossier "temporaire" qui ne s'effectue pas.
Une piste ?