Lettres du/des lecteurs cd et dvd

Résolu
narco4 Messages postés 32 Date d'inscription samedi 23 février 2008 Statut Membre Dernière intervention 23 août 2009 - 11 mai 2009 à 16:21
narco4 Messages postés 32 Date d'inscription samedi 23 février 2008 Statut Membre Dernière intervention 23 août 2009 - 12 mai 2009 à 20:20
Bonjour,

je voudrait avoir un peu d'aide svp

je voudrais faire un script vbs qui me renvoi dans un fichier texte le(s) lettre(s) des lecteur cd/dvd uniquement

j'ai déjà bien avancé, mais il y'a un soucies

  Dim fso
  Set FSO = CreateObject("Scripting.FileSystemObject")
  Set FTX =  FSO.createTextFile("Lecteur cd.txt",true)
  strComputer = "."
  Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\" & _
  strComputer & "\root\cimv2")
  Set DI__infos = objWMIService.ExecQuery("Select * from Win32_LogicalDisk",,48)

  For Each objDI__ in DI__infos
      Select Case objDI__.DriveType
            Case 4 strTL
      End Select
strDI = objDI__.Name
  Next
  FTX.writeline strDI

le soucie, c'est que si il existe 2 lecteurs il ne m'en marque qu'un
merci d'avance

7 réponses

cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
12 mai 2009 à 07:11
 Bonjour,

Plusieurs possibilités:

'instruction If...Then...Else
For Each objDisk In objFso.Drives
    if objDisk.DriveType <> 4 Then strList = strList & objDisk.DriveLetter & vbCrLf
Next
-----------------
'instruction Select Case
For Each objDisk In objFso.Drives
    Select Case objDisk.DriveType
       Case 4
       Case Else
          strList = strList & objDisk.DriveLetter & vbCrLf
    End Select
Next
-----------------
'instruction Select Case
For Each objDisk In objFso.Drives
    Select Case objDisk.DriveType
       Case 0 : strList = strList & objDisk.DriveLetter & vbCrLf
       Case 1 : strList = strList & objDisk.DriveLetter & vbCrLf
       Case 2 : strList = strList & objDisk.DriveLetter & vbCrLf
       Case 3 : strList = strList & objDisk.DriveLetter & vbCrLf
       Case 4 :
       Case 5 : strList = strList & objDisk.DriveLetter & vbCrLf
       Case Else
          strList = strList & objDisk.DriveLetter & vbCrLf
    End Select
Next
-----------------
pour la doc, recherche vbscript.chm ou script56.chm (W2000 et XP)

jean-marc
3
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
11 mai 2009 à 17:51
 Bonjour,

wmi n'est pas indispensable. voir propriétés fso.
il faut préciser le chemin du fichier texte en sortie.
écrire fichier txt si  lecteur cd/dvd, puis le fermer.

Dim objFso, objFile, objDisk
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFile =  objFso.CreateTextFile("c:\
Lecteur cd.txt",True)

For Each objDisk In GetObject("winmgmts:").InstancesOf("Win32_LogicalDisk")
    If objDisk.DriveType = 5 Then objFile.WriteLine objDisk.DeviceID & " avec wmi"
Next

For Each objDisk In objFso.Drives
    If objDisk.DriveType = 4 Then objFile.WriteLine objDisk.DriveLetter & " avec fso"
Next

objFile.Close
Set objDisk = Nothing
Set objFile = Nothing
Set objFso = Nothing

jean-marc
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
11 mai 2009 à 18:56
ou pour reprendre le script de narco4 et en modifiant la query

Const DVD_DISK = 5
Dim fso
Set FSO = CreateObject("Scripting.FileSystemObject")
Set FTX =  FSO.createTextFile("c:\Lecteur cd.txt",true)
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\" & _
                               strComputer & "\root\cimv2")

Set DI__infos = objWMIService.ExecQuery _
      ("Select * from Win32_LogicalDisk Where DriveType = " & DVD_DISK & "")

For Each objDI__ in DI__infos
    strDI = strDI & objDI__.Name & vbCrLf
Next
 
FTX.writeline strDI
FTX.Close

jean-marc
0
narco4 Messages postés 32 Date d'inscription samedi 23 février 2008 Statut Membre Dernière intervention 23 août 2009
11 mai 2009 à 21:04
ok, merci beaucoup c'est parfait

si je veus lister tous les disques,cd,usb

Dim objFso, objFile, objDisk
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFile =  objFso.CreateTextFile("c:\Lecteur cd.txt",True)



For Each objDisk In objFso.Drives
If objDisk.DriveType = 1 Then objFile.WriteLine objDisk.DriveLetter
    If objDisk.DriveType = 2 Then objFile.WriteLine objDisk.DriveLetter
If objDisk.DriveType = 3 Then objFile.WriteLine objDisk.DriveLetter
If objDisk.DriveType = 4 Then objFile.WriteLine objDisk.DriveLetter
If objDisk.DriveType = 5 Then objFile.WriteLine objDisk.DriveLetter
If objDisk.DriveType = 6 Then objFile.WriteLine objDisk.DriveLetter
Next



objFile.Close
Set objDisk = Nothing
Set objFile = Nothing
Set objFso = Nothing

y'a moyen de reduire

If objDisk.DriveType = 1 Then objFile.WriteLine objDisk.DriveLetter
    If objDisk.DriveType = 2 Then objFile.WriteLine objDisk.DriveLetter
If objDisk.DriveType = 3 Then objFile.WriteLine objDisk.DriveLetter
If objDisk.DriveType = 4 Then objFile.WriteLine objDisk.DriveLetter
If objDisk.DriveType = 5 Then objFile.WriteLine objDisk.DriveLetter
If objDisk.DriveType = 6 Then objFile.WriteLine objDisk.DriveLetter


merci beaucoup
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
11 mai 2009 à 22:00
 Bonsoir narco4,

Le test du DriveType devient donc inutile.

'DriveType -> 0 -> "Inconnu"
'DriveType -> 1 -> "Amovible"
'DriveType -> 2 -> "Fixe"
'DriveType -> 3 -> "Réseau - connecté ou déconnecté"
'DriveType -> 4 -> "CD-ROM"
'DriveType -> 5 -> "Disque virtuel"

For Each objDisk In objFso.Drives
    strList = strList & objDisk.DriveLetter & vbCrLf
Next
objFile.WriteLine strList
objFile.Close

jean-marc
0
narco4 Messages postés 32 Date d'inscription samedi 23 février 2008 Statut Membre Dernière intervention 23 août 2009
12 mai 2009 à 02:21
merci beaucoup JMO   

derniére question, et on termine
si je veus lister tout les diques (disque dur, usb etc) mais pas les lecteurs CD ou DVD
?

merci beaucoup
0
narco4 Messages postés 32 Date d'inscription samedi 23 février 2008 Statut Membre Dernière intervention 23 août 2009
12 mai 2009 à 20:20
MERCI bcp JMO

bonne soirée.
0
Rejoignez-nous