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
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Jonathan Bismuth
Le #44748
bien sur,

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:
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


Jean-Claude BELLAMY
Le #44747
Dans le message news: ,
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.


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
*

fabrice
Le #44746
Merci ;)


bien sur,

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:
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







Jacques Barathon [MS]
Le #44745
"Jean-Claude BELLAMY" news:%
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...


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

Jean-Claude BELLAMY
Le #44322
Dans le message news: ,
Jacques Barathon [MS]
[...]
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 :-)



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
*

fabrice
Le #43873
Merci beaucoup jean claude.

"Jean-Claude BELLAMY" message de news: %
Dans le message news: ,
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.


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
*





Poster une réponse
Anonyme