cs_tomyboy
Messages postés21Date d'inscriptionmardi 23 octobre 2007StatutMembreDernière intervention13 novembre 2007
-
30 oct. 2007 à 10:48
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
13 nov. 2007 à 21:53
Salut à vous,
Je supra débute en vbs et je dois faire un script qui permet de checker l'ensemble des disque dur d'une machine pour recuperer un fichier, tout en étant fonctionnel sur n'importe quel type de machine ( os différent, serveur/pc...) il me semble qu'il faut mettre une variable d'environnement , mais je ne sais pas trop, merci de votre aide
MsgBox SearchFile(cFile,cExt),,"Result fonction SearchFile"
Function SearchFile(MonFichier,MonExtension)
Dim strComputer, objWMIService, colFiles, objFile
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery _
("Select * from CIM_DataFile where FileName='" & MonFichier & _
"' And Extension ='" & MonExtension & "'")
For Each objFile in colFiles
SearchFile = objFile.Path &vbCrLf& objFile.Name
Set objWMIService = Nothing
Set colFiles = Nothing
Exit Function
Next
Set objWMIService = Nothing
Set colFiles = Nothing
SearchFile = "Fichier non trouvé"
End Function
Dans CIM_DateFile, on peut préciser le DriveType ainsi que le Drive(Name).
Si on veut rechercher, sur tous les disks, les fichiers se nommant MonFichier,
on procéderait ainsi:
For Each objFile in colFiles
resultat = resultat &vbCr& objFile.Path &vbCrLf& objFile.Name &vbcrlf
Next
msgbox resultat
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 13 nov. 2007 à 19:01
Re,
Pour ne sélectionner que les disks durs, on utilisera 2 Select.
Ex:
Const HARD_DISK = 3
'0 = Unknown
'1 = No Root Directory
'2 = Removable Disk
'3 = Local Disk
'4 = Network Drive
'5 = Compact Disc
'6 = RAM Disk
Set colDisks = objWMIService.ExecQuery _
("Select * from Win32_LogicalDisk Where DriveType = " & HARD_DISK & "")
For Each objDisk in colDisks
Set colFiles = objWMIService.ExecQuery _
("Select * from CIM_DataFile where Drive = '" &_
objDisk.Name & "' And Extension = '" & objTabExt(i) &"'")
For Each objFile in colFiles
msgbox objFile.Name &vbcrlf& objFile.Path