Bat retourne variable

Résolu
leSaleGauSS
Messages postés
148
Date d'inscription
samedi 4 novembre 2006
Statut
Membre
Dernière intervention
4 décembre 2008
- 8 déc. 2006 à 20:23
leSaleGauSS
Messages postés
148
Date d'inscription
samedi 4 novembre 2006
Statut
Membre
Derniè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

Il n'y aurait pas d'autre solutions ?

Quand je suis là tout va mal  

12 réponses

leSaleGauSS
Messages postés
148
Date d'inscription
samedi 4 novembre 2006
Statut
Membre
Dernière intervention
4 décembre 2008

13 déc. 2006 à 21:27
J'ai trouvé :
set scarguments="Icon"
set scarguments1="Printer"
set scarguments2="NetworkDrive"
cscript  script.vbs %scarguments%
cscript  script.vbs %scarguments1%
cscript  script.vbs %scarguments2%
pause

Merci pour l'aide (et les cours)
@++
Quand je suis là tout va mal  
3
leSaleGauSS
Messages postés
148
Date d'inscription
samedi 4 novembre 2006
Statut
Membre
Dernière intervention
4 décembre 2008

8 déc. 2006 à 20:44
ah oui sans oublier le
Do while not f.AtEndOfStream
loop

Quand je suis là tout va mal  
0
le cancre
Messages postés
292
Date d'inscription
mercredi 25 octobre 2006
Statut
Membre
Dernière intervention
27 novembre 2009

8 déc. 2006 à 21:59
Salut ^^

Quand script.vbs est lancé, j'aurais besoin de savoir quel est la valeur

si c'est toujours "script.vbs" au début
vu que len("script.vbs") = 10 
MsgBox  mid(F.ReadLine,11)

ou si tu dois faire des conditions
select case Mid(F.readline,11)
   case "test" : 
   case "test1" :
end select
0
leSaleGauSS
Messages postés
148
Date d'inscription
samedi 4 novembre 2006
Statut
Membre
Derniè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  
0

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

Posez votre question
leSaleGauSS
Messages postés
148
Date d'inscription
samedi 4 novembre 2006
Statut
Membre
Derniè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  
0
cs_JMO
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
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
0
leSaleGauSS
Messages postés
148
Date d'inscription
samedi 4 novembre 2006
Statut
Membre
Derniè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

Quand je suis là tout va mal  
0
leSaleGauSS
Messages postés
148
Date d'inscription
samedi 4 novembre 2006
Statut
Membre
Dernière intervention
4 décembre 2008

13 déc. 2006 à 01:59
Sinon ma première question était de savoir s'il n'y avait pas une autre façon de faire. Visiblement non ...

Quand je suis là tout va mal  
0
cs_JMO
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
13 déc. 2006 à 06:15
 Bonjour à tous

Bonjour leSaleGauSS ,
WScript.Arguments permet vérifier les variables.

jean-marc
0
leSaleGauSS
Messages postés
148
Date d'inscription
samedi 4 novembre 2006
Statut
Membre
Dernière intervention
4 décembre 2008

13 déc. 2006 à 20:03
Heu comment on l'utilise ? Aurais tu un exemple ?

Quand je suis là tout va mal  
0
cs_JMO
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
13 déc. 2006 à 20:11
 Bonsoir à tous

Bonsoir leSaleGauss,

http://resinfo.free.fr/BTSIRIS/Cours/Programmation/VBS/Cours%20vbs/wsh_04.pdf

peux-tu reformuler (un peu plus clairement pour moi) ton topic....

jean-marc
0
leSaleGauSS
Messages postés
148
Date d'inscription
samedi 4 novembre 2006
Statut
Membre
Derniè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

C'est plus clair ou la pile est morte ?

Quand je suis là tout va mal  
0