[BASH/VBS] Variables d'environnements utilisateurs

Le
Stéphane
Bonjour,
J'ai créé un petit script qui utilise les méthodes de définition des
variable d'environnement de l'utilisateur :

Set oShell=Wscript.CreateObject("WScript.Shell")
Set oEnv=oShell.Environment("user")

oEnv("ENVAR")="VAR 01"
oShell.Run "cmd /K echo %ENVAR%"

Le problème que je rencontre est que je n'arrive pas à accèder à ma variable
dans le même script avec le run. J'ai essayé diverses stratégie et
impossible

Est-ce que quelqu'un aurait une idée pour m'aider à résoudre mon problème ?

Cordialement,

Stéphane
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MCI \(ex do ré Mi chel la si do\) [MVP]
Le #18650361
Bonjour !

Ce n'est pas possible. Le Run s'exécute dans un autre environnement, qui
a ses propres variables (d'environnement).
Il n'y a ni héritage, ni transmission, des variables d'environnement.

Une solution (pas terrible), c'est d'écrire un mini fichier, et de
l'appeler dans le batch (du Run).
Exemple :
écrire, dans le fichier toto.bat, la chaîne :
SET ENVAR=VAR01
et, dans le batch :
CALL toto.bat

Evidemment, en prod, on a intérêt à passer par le dossier %TEMP%. Ici,
c'était juste un exemple.

@-salutations
--
Michel Claveau
Gilles LAURENT [MVP]
Le #18651251
"MCI (ex do ré Mi chel la si do) [MVP]"
news:%
| Bonjour !

Bonjour,

| Ce n'est pas possible. Le Run s'exécute dans un autre environnement,
| qui a ses propres variables (d'environnement).
| Il n'y a ni héritage, ni transmission, des variables d'environnement.
[...]

--- CodeSnippet.vbs ---
With CreateObject("WScript.Shell")
.Run "DynSetEnv -name envar -value var01",0,True
.Run "cmd /k echo %envar%"
End With
--- CodeSnippet.vbs ---

L'outil DynSetEnv permet l'héritage car la variable d'environnement est
automatiquement injectée dans le moteur de script (i.e CScript.exe ou
WScript.exe). La nouvelle console hérite du bloc d'environnement du
processus père donc la variable d'environnement est disponible.
http://glsft.free.fr/index.php?option=com_content&task=view&idg&Itemid(

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
MCI \(ex do ré Mi chel la si do\) [MVP]
Le #18652621
Re !

DynSetEnv



Hop, téléchargé. Ça, c'est un outil qui va m'être très utile.
Merci.

@-salutations
--
Michel Claveau
Stéphane
Le #18658941
Bonjour,
Je n'ai pas eu le temps de tester l'outil mais merci en tout cas.

A+

"Gilles LAURENT [MVP]"
"MCI (ex do ré Mi chel la si do) [MVP]"
news:%
| Bonjour !

Bonjour,

| Ce n'est pas possible. Le Run s'exécute dans un autre environnement,
| qui a ses propres variables (d'environnement).
| Il n'y a ni héritage, ni transmission, des variables d'environnement.
[...]

--- CodeSnippet.vbs ---
With CreateObject("WScript.Shell")
.Run "DynSetEnv -name envar -value var01",0,True
.Run "cmd /k echo %envar%"
End With
--- CodeSnippet.vbs ---

L'outil DynSetEnv permet l'héritage car la variable d'environnement est
automatiquement injectée dans le moteur de script (i.e CScript.exe ou
WScript.exe). La nouvelle console hérite du bloc d'environnement du
processus père donc la variable d'environnement est disponible.
http://glsft.free.fr/index.php?option=com_content&task=view&idg&Itemid(

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr




Stéphane
Le #18676971
Bonjour,
J'ai testé et ça marche bien.
Un deuxième problème est cependant apparu que je n'avais pas avant :p .
Je n'arrive pas à passer de variable avec accent... Est ce qu'il y aurait
une parade ou une solution de conversion qui me permettrait de passer des
variables avec accent ?

Merci


"Stéphane" %23b4z%
Bonjour,
Je n'ai pas eu le temps de tester l'outil mais merci en tout cas.

A+

"Gilles LAURENT [MVP]"
"MCI (ex do ré Mi chel la si do) [MVP]"
news:%
| Bonjour !

Bonjour,

| Ce n'est pas possible. Le Run s'exécute dans un autre environnement,
| qui a ses propres variables (d'environnement).
| Il n'y a ni héritage, ni transmission, des variables d'environnement.
[...]

--- CodeSnippet.vbs ---
With CreateObject("WScript.Shell")
.Run "DynSetEnv -name envar -value var01",0,True
.Run "cmd /k echo %envar%"
End With
--- CodeSnippet.vbs ---

L'outil DynSetEnv permet l'héritage car la variable d'environnement est
automatiquement injectée dans le moteur de script (i.e CScript.exe ou
WScript.exe). La nouvelle console hérite du bloc d'environnement du
processus père donc la variable d'environnement est disponible.
http://glsft.free.fr/index.php?option=com_content&task=view&idg&Itemid(

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr








Stéphane
Le #18676961
Petite correction c'est le contenu de ma variable qui a des accents .


"Stéphane"
Bonjour,
J'ai testé et ça marche bien.
Un deuxième problème est cependant apparu que je n'avais pas avant :p .
Je n'arrive pas à passer de variable avec accent... Est ce qu'il y aurait
une parade ou une solution de conversion qui me permettrait de passer des
variables avec accent ?

Merci


"Stéphane" %23b4z%
Bonjour,
Je n'ai pas eu le temps de tester l'outil mais merci en tout cas.

A+

"Gilles LAURENT [MVP]"
"MCI (ex do ré Mi chel la si do) [MVP]"
news:%
| Bonjour !

Bonjour,

| Ce n'est pas possible. Le Run s'exécute dans un autre environnement,
| qui a ses propres variables (d'environnement).
| Il n'y a ni héritage, ni transmission, des variables d'environnement.
[...]

--- CodeSnippet.vbs ---
With CreateObject("WScript.Shell")
.Run "DynSetEnv -name envar -value var01",0,True
.Run "cmd /k echo %envar%"
End With
--- CodeSnippet.vbs ---

L'outil DynSetEnv permet l'héritage car la variable d'environnement est
automatiquement injectée dans le moteur de script (i.e CScript.exe ou
WScript.exe). La nouvelle console hérite du bloc d'environnement du
processus père donc la variable d'environnement est disponible.
http://glsft.free.fr/index.php?option=com_content&task=view&idg&Itemid(

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr












Gilles LAURENT [MVP]
Le #18676951
"Stéphane" news:
| Petite correction c'est le contenu de ma variable qui a des accents .

Merci pour ce retour.
Il y avait en effet un bug de conversion ANSI vers OEM.
Les caractères accentués sont maintenant supportés.

DynSetEnv :
http://glsft.free.fr/index.php?option=com_content&task=view&idg&Itemid(

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
MCI \(ex do ré Mi chel la si do\) [MVP]
Le #18676941
Aaaarrrggghhh !!!

Encore une nouvelle version.
Bon, n'ayant pas réussi à utiliser DynSetEnv-Update, j'ai re-téléchargé
tout le paquet.
--
@-salutations
--
Michel Claveau
Stéphane
Le #18674831
Re bonjour,
Et merci à toi pour cette correction super rapide :) .
Ton outil et ton site sont super utiles !!!

.A+


"Gilles LAURENT [MVP]" %23C$
"Stéphane" news:
| Petite correction c'est le contenu de ma variable qui a des accents .

Merci pour ce retour.
Il y avait en effet un bug de conversion ANSI vers OEM.
Les caractères accentués sont maintenant supportés.

DynSetEnv :
http://glsft.free.fr/index.php?option=com_content&task=view&idg&Itemid(

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr




Gilles LAURENT [MVP]
Le #18727671
"Stéphane" news:
| Re bonjour,

Re bonjour,

| Et merci à toi pour cette correction super rapide :) .
| Ton outil et ton site sont super utiles !!!

Merci pour ce retour.

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Publicité
Poster une réponse
Anonyme