Bonjour tout le monde,

Pourriez-vous dans la mesure du possible vérifier mon code.
Il fonctionne parfaitement sur plusieurs machines et pas sur un autre.
Hors, ces machines tournent tous sur XP ?

Je constate, que lors du lancement du script, il y a un accès vers le lecteur 1.44, et puis il saute sur l’USB ? Est-ce normal ?

Je dois lancer le script deux trois fois et puis il fonctionne parfaitement aussi.

Le but primaire de ce script : vérifier les ports usb pour voir s’il y a un disque MERLIN dessus et puis faire le reste.

Bizarre, est-ce lié à la carte mère de la machine ?

Bav


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
strComputer = "." 
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
Set colDisks = objWMIService.ExecQuery ("Select * from Win32_LogicalDisk Where DriveType=2 And VolumeName='MERLIN'") 
For each objDisk in colDisks 
    If objDisk.VolumeName = "MERLIN" then 
            Merlindr = objDisk.Name    
Dim stFichierDest
Dim stLigne1
Dim stLigne2
Dim st
Dim tbLg
Dim tb
Dim i
Dim FSO, File1, ParentFolderPath, FileName
FileName = "FM_vbscript.vbs"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set File1 = FSO.GetFile(FileName)
ParentFolderPath = File1.ParentFolder
Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 8
stRep = Merlindr 'Répertoire de travail
stRep2 = ParentFolderPath&"\MerlinImport\"
stFichierSource = CreateObject("htmlfile").ParentWindow.ClipboardData.Getdata("text") & ".log"
stFichierDest = CreateObject("htmlfile").ParentWindow.ClipboardData.Getdata("text") & ".txt"
Set oFichier = FSO.OpenTextFile(stRep & stFichierSource, ForReading, True) 
if not oFichier.AtEndofStream then st = oFichier.ReadAll 
if st = "" Then wscript.quit  
oFichier.Close 
tbLg = Split(st, Chr(10))
For i = 0 To UBound(tbLg) 'parcours les lignes
  tb = Split(tbLg(i), Chr(&H1C))
  If (UBound(tb) >= 2) Then
    stLigne1 = stLigne1 & tb(0) & vbTab
    stLigne2 = stLigne2 & tb(2) & vbTab
  End If
Next
Set oFichier = FSO.OpenTextFile(stRep2 & stFichierDest, ForWriting, True) 
oFichier.WriteLine(stLigne1)
oFichier.WriteLine(stLigne2)
oFichier.Close        
wscript.quit         
else
wscript.quit  
End If
next
wscript.quit