leSaleGauSS
Messages postés148Date d'inscriptionsamedi 4 novembre 2006StatutMembreDernière intervention 4 décembre 2008
-
8 déc. 2006 à 20:23
leSaleGauSS
Messages postés148Date d'inscriptionsamedi 4 novembre 2006StatutMembreDernière intervention 4 décembre 2008
-
13 déc. 2006 à 21:27
Bonsoir,
je voulais juste savoir si on pouvait récupérer une valeur dans un fichier bat
Exemple "start.bat" contient :
script.vbs test
script.vbs test1
Quand script.vbs est lancé, j'aurais besoin de savoir quel est la valeur (ici test puis test1) à utiliser
Pour l'instant je fais un simple opentextFile suivi d'un split...
set fso=createobject("Scripting.FileSystemObject")
set f=fso.opentextFile("start.bat")
tabl=split(f.readline , " ")
if tabl(1)="test" then
...
elseif tabl(1)="test1" then
...
end if
leSaleGauSS
Messages postés148Date d'inscriptionsamedi 4 novembre 2006StatutMembreDernière intervention 4 décembre 2008 8 déc. 2006 à 22:15
Moui, ça m'enleve le tableau...
pour le select case ça revient au même que d'utiliser ElseIf non ?
sinon j'ai fait une autre erreur : quand j'ouvre le fichier bat il m'indique une erreur comme quoi script.vbs n'est pas une commande valide... (ya plus qu'a chercher la syntaxe)
sinon merci pour la réponse Le cancre
Quand je suis là tout va mal
Vous n’avez pas trouvé la réponse que vous recherchez ?
leSaleGauSS
Messages postés148Date d'inscriptionsamedi 4 novembre 2006StatutMembreDernière intervention 4 décembre 2008 8 déc. 2006 à 22:56
Erreur résolue !! j'ai oublié de mettre cscript dans le fichier ...
du coup la ligne est :
cscript script.vbs test
Par contre je vois toujours pas la différence entre mon ElseIf et le Select Case ...
Quand je suis là tout va mal
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 9 déc. 2006 à 13:32
Bonjour à tous
Dans ce cas, je trouve préférable d'utiliser le "select case" qui est plus souple et surtout plus compréhensible visuellement.
Je n'ai fait que reprendre vos 2 propositions (899656 leSaleGauSS et =891984 Le cancre).
ex:
'je voulais juste savoir si on pouvait récupérer une valeur dans un fichier bat
'Exemple "start.bat" contient :
'cscript script.vbs test
'cscript script.vbs test1
'cscript script.vbs test2
'cscript script.vbs toto
' .... un nbre indéfini de lignes
set fso=createobject("Scripting.FileSystemObject")
set f=fso.opentextFile("D:\Test_VBFrance\start.bat")
set Dico_tabl = CreateObject("Scripting.Dictionary")
nbre_args = 0
Do while not f.AtEndOfStream
tabl=split(f.readline , " ")
Dico_tabl.Add nbre_args, tabl(2) : nbre_args = nbre_args +1
Loop
MsgBox Dico_tabl.Count,,"nbre d'item dans le dictionary"
For i = 0 To Dico_tabl.Count -1
' MsgBox Dico_tabl(i),,"verif dico_tabl(i)"
Select Case Dico_tabl(i)
Case "test1" : MsgBox "ici pour x raisons, j'effectue une action"
Case Else
End Select
Next
set Dico_tabl = Nothing
set fso = Nothing
Set f = Nothing
Ce post n'apporte rien de mieux, mais c'est normal venant de ma part.
Il y a x possibilités pour arriver au même résultat (merci Rome).
De même, on aurait pu utiliser RegEx et la collection Matches.
jean-marc
leSaleGauSS
Messages postés148Date d'inscriptionsamedi 4 novembre 2006StatutMembreDernière intervention 4 décembre 2008 13 déc. 2006 à 01:54
"Ce post n'apporte rien de mieux, mais c'est normal venant de ma part."
Rien de mieux ?, je ne connaissais même pas l'existence d'un dictionnary en vbscript (ni son utilisation d'ailleurs)...enfin merci quand même, je vais tester cela
leSaleGauSS
Messages postés148Date d'inscriptionsamedi 4 novembre 2006StatutMembreDernière intervention 4 décembre 2008 13 déc. 2006 à 21:10
Bonsoir JMO
j'ai un fichier .bat et un autre .vbs
le .bat doit lancer le script en prenant en compte un argument
exemple
Dans .bat :
cscript scipt.vbs %Icon%
cscript scipt.vbs %Printer%
Dans .vbs :
if wscript.arguments="Icon" then
...
elseif wscript.arguments="Printer" then
...
end if