OVH Cloud OVH Cloud

VB Script

1 réponse
Avatar
PeterPan
Bonjour,
Sous VBScript, comment r=E9cuperer la valeur des variables=20
d'environnement local d=E9fini par un SET.
Ex : j'ai d=E9fini une variable par SET NOM_DOSSIER=3DTOTO=20
dans un fichier ".bat". Dans un VBScript, je voulais=20
r=E9cup=E9rer cette variable %NOM_DOSSIER%, comment faire ?

Merci d'avance,

1 réponse

Avatar
Jean-Claude BELLAMY
Dans le message news:275a01c45d24$ab84cef0$ ,
PeterPan s'est ainsi exprimé:

Bonjour,
Sous VBScript, comment récuperer la valeur des variables
d'environnement local défini par un SET.
Ex : j'ai défini une variable par SET NOM_DOSSIER=TOTO
dans un fichier ".bat". Dans un VBScript, je voulais
récupérer cette variable %NOM_DOSSIER%, comment faire ?


Set shell = WScript.CreateObject("WScript.Shell")
dossier = shell.ExpandEnvironmentStrings("%NOM_DOSSIER%")
...

ATTENTION : si tu définis une variable dans un batch, elle ne sera vue que
dans le "shell" qui a lancé ce batch!
p.ex. :
dans le batch "testset.bat" on a :
@echo off
set essaivar=toto

On ouvre une fenêtre de commande :
C:WINDOWSsystem32>echo %essaivar%
%essaivar%
(la variable n'est pas encore définie)

Puis on lance "testset.bat" :
C:WINDOWSsystem32>testset

La variable est maintenant définie dans le shell :
C:WINDOWSsystem32>echo %essaivar%
toto


MAIS si on ouvre à présent une nouvelle fenêtre de commande :
C:WINDOWSsystem32>echo %essaivar%
%essaivar%
!!!!

Si on veut la PERSISTANCE d'une variable, c'est à dire même après fermeture
du shell, il faut faire appel à "SETX", et non pas SET.
SETX fait partie du Resource Kit, mais il est téléchargeable gratuitement :
http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/setx-o.asp

Attention : sa syntaxe est légèrement différente de SET
SETX essaivar toto
(sans le signe "=")
---------------------------------------------------

On peut aussi définir une variable dans un VBS :
Set Shell=Wscript.CreateObject("WScript.Shell")
Set env=Shell.Environment
env("essai2")="test"

Ici, la variable est PERSISTANTE

Si on ouvre ensuite une fenêtre de commandes, on obtiendra :
C:WINDOWSsystem32>echo %essai2%
test


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
http://www.bellamyjc.org *