Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

6 réponses
Avatar
fabrice
Bonjour, j'aimerais savoir s'il est poosible de mettre des paramêtre dans
scipts.vbs //nom=toto, prenom=titi, cclient=05123 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

6 réponses

Avatar
Jonathan Bismuth
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" a écrit dans le message de
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


Avatar
Jean-Claude BELLAMY
Dans le message news: ,
fabrice s'est ainsi exprimé:

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" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.bellamyjc.org/download/vbs/connexion.wsf
http://www.bellamyjc.org/download/vbs/icfports.wsf" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.bellamyjc.org/download/vbs/icfports.wsf
http://www.bellamyjc.org/download/vbs/name2sid.wsf" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.bellamyjc.org/download/vbs/name2sid.wsf
http://www.bellamyjc.org/download/vbs/screncode.wsf" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.bellamyjc.org/download/vbs/screncode.wsf
http://www.bellamyjc.org/download/vbs/scrdecode.wsf" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.bellamyjc.org/download/vbs/scrdecode.wsf
http://www.bellamyjc.org/download/vbs/regowner.wsf" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">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
*

Avatar
fabrice
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" a écrit dans le message de
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







Avatar
Jacques Barathon [MS]
"Jean-Claude BELLAMY" wrote in message
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

Avatar
Jean-Claude BELLAMY
Dans le message news: ,
Jacques Barathon [MS] s'est ainsi exprimé:

[...]
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
*

Avatar
fabrice
Merci beaucoup jean claude.

"Jean-Claude BELLAMY" a écrit dans le
message de news: %
Dans le message news: ,
fabrice s'est ainsi exprimé:

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" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.bellamyjc.org/download/vbs/connexion.wsf
http://www.bellamyjc.org/download/vbs/icfports.wsf" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.bellamyjc.org/download/vbs/icfports.wsf
http://www.bellamyjc.org/download/vbs/name2sid.wsf" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.bellamyjc.org/download/vbs/name2sid.wsf
http://www.bellamyjc.org/download/vbs/screncode.wsf" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.bellamyjc.org/download/vbs/screncode.wsf
http://www.bellamyjc.org/download/vbs/scrdecode.wsf" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.bellamyjc.org/download/vbs/scrdecode.wsf
http://www.bellamyjc.org/download/vbs/regowner.wsf" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">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
*