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 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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 *
Dans le message news:275a01c45d24$ab84cef0$3501280a@phx.gbl ,
PeterPan <peterpan750@hotmail.com> 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 Jean-Claude.Bellamy@wanadoo.fr *
JC.Bellamy@free.fr
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 *