[VBS] WshShell - Problème d'initialisation des var. d'environment

WshShell - Problème d'initialisation des var. d'environment [VBS] - VB/VBA/VBS - Programmation

Marsh Posté le 05-02-2004 à 08:20:58    

Bonjour :hello:
on me demande de l'aide pour un problème trop ardu pour moi, ainsi je vous demande de m'éclairer ma lanterne :)
 
voilà le topo. on créé un script vbs pour initialiser et lancer un exécutable. Jusque là tout va bien.
 
Le truc c'est qu'on aimerait que le fichier A lance le fichier B qui lui fait toute une série de SET (pour les variables d'environnement). Puis on retourne dans le fichier A pour lancer l'exe en question avec les variables d'environnement définies dans le fichier B.
 
Problème: Le fichier B est donc un processus-fils, et lorsqu'il sort, il ne garde pas les modifications en revenant dans le fichier A.  
 
Dans le pire des cas, on copiera le fichier B dans le fichier A, mais je pense qu'il existe une solution moins sale [:totoz] (surtout que le fichier B en question sera peut-etre partagé).
 
donc si vous avez des pistes à me proposer ou des questions car vous n'avez pas compris, merci beaucoup d'avance [:zytra]


Message édité par urd-sama le 05-02-2004 à 08:21:25
Reply

Marsh Posté le 05-02-2004 à 08:20:58   

Reply

Marsh Posté le 06-02-2004 à 15:40:46    

petit up :hello:

Reply

Marsh Posté le 09-02-2004 à 08:58:07    

j'ai pas tout compris (et j'ai pas envie de me creuser la tete pour ça) mais en VBS, tu as des fonctions de SET de variable deja d'une (donc pas la peine de passer par cette commande dos), ensuite aboule ton code que je vois...

Reply

Marsh Posté le 09-02-2004 à 09:00:56    

set WshShell = WScript.CreateObject("WScript.Shell" )
WScript.Echo "WinDir is " & WshShell.ExpandEnvironmentStrings("%WinDir%" )

Reply

Marsh Posté le 09-02-2004 à 10:26:25    

Tu peux récupérer toutes les variables d'env avec:
 
Dim Env
Set env = WshShell.Environement("PROCESS" )
 
et tu y accèdes par env("TEMP" ) par exemple.
 
Exemple:
 

Citation :


Option Explicit
 
Dim WshShell, env, v, list
Set WshShell = CreateObject("WScript.Shell" )
Set env = WshShell.Environment("PROCESS" )
 
For each v in env
 list = list&v&vbCrlf
Next
 
Wscript.Echo list


Message édité par kfman le 09-02-2004 à 10:32:10
Reply

Marsh Posté le 09-02-2004 à 14:54:29    

merci beaucoup je regarde tout ça demain :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed