Pb vbs WScript.Quit ()

cs_simonfr Messages postés 9 Date d'inscription lundi 2 mai 2005 Statut Membre Dernière intervention 8 avril 2006 - 17 juin 2005 à 09:13
cs_Yoyo2B Messages postés 125 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 6 mars 2008 - 17 juin 2005 à 10:29
bonjour, j'ai un script en vbs tout simple qui recupere la valeur du premier caractere d'un fichier texte

il est lance par un script bat.

si je le lance sans passe par le script bat il marqche niquel suivant
la valeur dans le fichier texte il me renvoie differrent message.

mais si il est lance par le .bat il ne marche pas et je ne sais pas pourkoi.

le plus bizarre est que dans mon script bat je fait la meme operation
sur un fichier texte a une autre endroit et la ca marche parfaitement
alors que la seule chose qui change dans mon script est le nom du
fichier texte .



voila mon code :

Const cForReading = 1

Set objFso = CreateObject("Scripting.FileSystemObject")

Set ts = objFso.OpenTextFile("av.txt", cForReading)



Do While Not ts.AtEndOfStream

CaracToSearch = Mid(ts.ReadLine,1,1)



If CaracToSearch = "1" Then

MsgBox("pas installer")

WScript.Quit (1)

End If

If CaracToSearch = "2" Then

MsgBox("pas a jour")

WScript.Quit (2)

End If

If CaracToSearch = "3" Then

MsgBox("pas actif")

WScript.Quit (3)

End If

If CaracToSearch = "4" Then

MsgBox("cle pas bonne")

WScript.Quit (4)

End If

If CaracToSearch = "5" Then

MsgBox("tout bon")

WScript.Quit (0)

End If

WScript.Quit (7)

Loop

Set ts = nothing

Set objFso = nothing





les msgbox ne sont la que pour les test normalement le script ne fait que renvoier la valeur de WScript.Quit

1 réponse

cs_Yoyo2B Messages postés 125 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 6 mars 2008
17 juin 2005 à 10:29
met le chemin complet de ton fichier :
c:\av.txt plutot que av.txt

oublie pas de mettre le troisieme argument de opentextfile à false pour pas créer le fichier (sinon, vérifie que tu a les autorisations pour le faire) et vérifie avant tout la présence du fichier
If Fso.FileExist(path) =true then
ou tout simplement
if DIr(path) <> "" then

avant le Set ts = nothing
, si tu a ouvert le fichier, ... n'oublie pas de le fermer
ts.close()

mais c bien de penser à décharger les variable :-)

et pour ton code, si c juste des quit a chaque fois, utilise plutot

select case CaracToSearch
case "1","2","3","4"
WScript.Quit (cint(CaracToSearch ))
case "5"
WScript.Quit(0)
end select

et si tu veux tes msg box, crée un tableau
dim Tab(4)
Tab = array ("tout bon","pas installer","pas a jour","pas actif","cle pas bonne")
et tu met juste
msgbox Tab(cint(CaracToSearch )) ds ton select case

voilà ....

happy coding ...
0
Rejoignez-nous