Passage de parametre en valuer de variables (ex : scripts.vbs //no
Le
fabrice

Bonjour, j'aimerais savoir s'il est poosible de mettre des paramêtre dans
scipts.vbs //nom=toto, prenom=titi, cclient123 et ceci les transformer en
valeur de variables.
Sinon existe une possbilité de contourner ce problème sans pour autant faire
une msgbox et d'y entrer la valeur.
D'avance merci
scipts.vbs //nom=toto, prenom=titi, cclient123 et ceci les transformer en
valeur de variables.
Sinon existe une possbilité de contourner ce problème sans pour autant faire
une msgbox et d'y entrer la valeur.
D'avance merci
par exemple dans ton cas pour script.vbs toto titi 05123:
'### application des arguments en tant que variables
nom= WScript.Arguments(0)
prenom = WScript.Arguments(1)
cclient = WScript.Arguments(2)
### ton script à la suite ###
--
Jonathan BISMUTH
MCSE (W2K) 2272252
Beta ID 570978
WSH/Batch Scripter
http://www.supinfo-projects.com/fr/authors/?a=Cyber_Hunter
pour me contacter http://cerbermail.com/?z5pCI2OyS6
"fabrice" news:
fabrice
Oui, il suffit d'utiliser l'objet "arguments" de Wscript
Set Args = WScript.Arguments
Args.count contient le nombre de paramètres passés, et args(0), args(1), ...
contiennent les paramètres respectifs.
NB: on peut utiliser args.item(i) à la place de args(i), masi çà complique
un peu...
Pour gérer de façon "élégante" les paramètres, on a intérêt à passer par un
WSF et non pas VBS.
Un script WSF est, pour résumer, un document XML qui contient un ou
plusieurs scripts, en VBS ou en d'autres langages.
Un système de gestion des paramètres existe, avec affichage d'un mode
d'emploi succint du script, ...tout çà automatique.
Les paramètres peuvent êtres nommés ( " /computer:springfield") ou non
("toto").
Ils peuvent être interprétés comme des chaines (cas le plus fréquent), des
velrus booléenes ou un nombre
On peut déclarer leur présence obligatoire ou facultative.
Exemple
--------
<job>
<runtime>
<description author="duschmurz">
---------------------------------------------------------------------
ici on écrit en texte libre une description du script qui sera affichée
si on exécute le script suivi du commutateur /?
Duchmurz © 2005
---------------------------------------------------------------------
</description>
<named
name = "?"
helpstring = "Affiche la présente aide"
type = "string"
required = "false" />
<named
name = "param1"
helpstring = "description du 1er paramètre
avec des commentaires éventuel .
le nom défini à droite du signe égal est arbitraire."
type = "string"
required = "false" />
<named
name = "param2"
helpstring = "description du 2ème paramètre"
type = "string"
required = "false" />
<unnamed name = "ensemble de paramètres non nommés"
helpstring = "ils sont récupérés dans un ensemble unique"
type = "string"
required = "false" />
<example>
Ici on va écrire en texte libre des exemples éventuels
Exemples :
----------
plops
affiche la liste des brouzoufs
plops /param1:"blurp"
affiche la liste des brouzoufs de la catégorie blurp
...
</example>
</runtime>
<script language="VBScript">
' ICi commence le script (en VBS ici) proprement dit
...
on error resume next
...
'test de l'existence éventuelle du paramètre "?"
If named.Exists("?") Then
' Affiche une aide automatique
WScript.Arguments.ShowUsage
WScript.Quit
End If
' Récupération éventuelle des paramètres nommés
Set Named = WScript.Arguments.Named
' on teste l'existence du paramètre "param1"
if named.Exists("param1") Then Toto =named.Item("param1")
' on teste l'existence du paramètre "param2"
if named.Exists("param1") Then Toto =named.Item("param1")
'
' Récupération éventuelle des paramètres non nommés
Set UnNamed = WScript.Arguments.UnNamed
nu=UnNamed.count
for i=0 to nu-1
var(i)=UnNamed(i)
next
...
' Fin du script puis du fichier
</script>
</job>
cf. :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/wselejob.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/wslrfNamedElement.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/wsconUnnamedElement.asp
et tous les autres !
Voir également mes scripts WSF :
http://www.bellamyjc.org/download/vbs/connexion.wsf
http://www.bellamyjc.org/download/vbs/icfports.wsf
http://www.bellamyjc.org/download/vbs/name2sid.wsf
http://www.bellamyjc.org/download/vbs/screncode.wsf
http://www.bellamyjc.org/download/vbs/scrdecode.wsf
http://www.bellamyjc.org/download/vbs/regowner.wsf
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*
Tu peux également te baser sur l'exemple ci-dessous pour voir comment on
peut accéder à des arguments nommés (ce qui permet de ne pas se soucier de
l'ordre dans lequel ils sont placés):
--- début ---
Dim argument
For each argument in Wscript.Arguments.Named
wscript.echo "argument: " & argument & vbTab & "value: "_
& Wscript.Arguments.Named(argument)
Next
--- fin ---
Chaque argument doit être passé sous la forme "/argument1:valeurx" comme
dans cet exemple très utile:
prixTTC.vbs /prixHT:3990 /taux:20
Nul besoin d'utiliser WSF pour y arriver :-)
Jacques
Jacques Barathon [MS]
Et bien merci pour l'info, je mourrai moins idiot !
Je pensais que les propriétés "named" et "unnamed" n'existaient que dans le
cas de WSF ..
(le document d'aide "wsproarguments.html" consacré à l'objet "arguments"
n'en parle pas)
Mais maintenant j'ai pris goût aux WSF, car c'est bien pratique ce
"showusage" et le panachage possible de plusieurs scripts.
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*
"Jean-Claude BELLAMY" message de news: %