Hello à tous,

Depuis quelque temps j'utilise le script suivant, qui fonctionne bien sauf ...

grosso modo, il collecte du presse papier un nom (par exemple 12345).
Puis il ouvre un fichier .log (avec se nom 12345) dans un certain folder,
pour le transformer en fichier .txt dans un autre folder

Jusque là tout vas bien mais quand le nom dans le presse papier ne correspond à aucun fichier .log dans le folder : il me donne l'erreur Input past end of file. sur la ligne 31.

En fait il crée un fichier .txt avec ce nom érronnée à 0k. Et c'est la dessus qu'il se plante.

A ce que j'ai cru lire cela aurai à voir avec des fichier vide ? Effectivement quand je regarde dans le folder, un fichier .txt ce cré avec le nom fautif est avec 0k.

Pourriez-vous m'aider à inserer des lignes de codes pour y remédier ?
Par Exemple : quand fichier = 0K stop script. Je dis peut-être n'importe quoi.

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
49
50
51
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) 
st = oFichier.ReadAll 
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