Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2610 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Besoin d'aide avec les Variables d'Environnement en VBScript

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Besoin d'aide avec les Variables d'Environnement en VBScript

n°1124954
kioo
Posté le 20-06-2005 à 08:58:09  profilanswer
 

Bonjour
 
Je bloque sur un problème de variable d'environnemnt et je n'arrive pas à trouver l'info dont j'ai besoin.
Je crée des scripts en VBScript sous XP/2000 pour info.
 
 
Mon problème vient des variables d'envionnement, je les conais très peu. Je sais qu'il éxiste 3 environnement de déclaration:
Volatile, User, System, Process
-User çà va, c'est uniquement accéssible à l'utilisateur connecté
-Volatile je suppose que çà ne dure que le temps de l'utilisation (dans un script par ex) ensuite çà disparait
-Mais System, Process je vois pas la différenc. J'ai trouvé une petite explication http://www.windowsitpro.com/Articl [...] leID=22709 mais j'aimerais avoir plus d'explication.
 
 
Parceque j'ai besoin pour un script, suivant certain choix fait par la personne à la suyite d'un traitement d'initialiser une variable d'environnement pour l'utiiser dans ce même script juste derrière et de la laisser en place car elle est utilisé par d'autre chose plustard.
 

Code :
  1. ...
  2. lancement_proeng = "C:\Program Files\proe2001"
  3. ...
  4. Set fso = CreateObject("Scripting.FileSystemObject" )
  5. Set f = fso.GetFolder(lancement_proeng)
  6. set oEnv_system=shell.Environment("System" )
  7. set oEnv_process=shell.Environment("Process" )
  8. oEnv_system("lancement_proeng" ) = f.shortpath
  9. oEnv_process("lancement_proeng" ) = f.shortpath
  10. ...
  11. shell.Run GetPath() & "proe.cmd"


Je vous passe les détails, j'initialise une variable ensuite j'effectue une petite astuce pour pouvoir en récuperer le Nom court mais là n'est pas le problème.
Le problème est que après 2jours de tests, je me trouve obligé de créer la même variable aussi bien dans SYSTEM que PROCESS.
 
En effet, si je le fait seulement dans SYSTEM, le script proe.cmd appélé ensuite ne fonctionne pas car il n'utilise pas la valeur de la variable d'environnement "lancement_proeng" initiliasé dans le script mais la valeur au moment du lancement du script (la valeur précedente donc) ce qui ne va pas du tout.
C'est pourquoi j'initialise aussi la même valeur pour "lancement_proeng" mais dans PROCESS et là, le script proe.cmd appelé marche correctement car il utilise la bonne valeur pour "lancement_proeng".
Mais si je ne fait pas l'ajout dans SYSTEM aussi, la variable d'environnement "lancement_proeng" n'est pas référencé dans SYSTEM une fois le script terminé. Quand je vais voir dans Panneau de config/Système/Variable d'environnement/ elle n'y figure pas et donc les autres fichiers qui en ont besoins plustard ne marchent pas...
 
Donc j'aimerais comprendre pourquoi ? et si ya un autre moyen de faire parceque tel quel, çà marche mais je ne sais pas pourquoi :(

Message cité 1 fois
Message édité par kioo le 20-06-2005 à 15:24:36
mood
Publicité
Posté le 20-06-2005 à 08:58:09  profilanswer
 

n°1125832
kioo
Posté le 21-06-2005 à 08:29:20  profilanswer
 

pti up
j'en suis toujours au même point depuis hier

n°1253153
madmartiga​n
Desperate Houseman
Posté le 25-11-2005 à 12:58:13  profilanswer
 

kioo a écrit :

pti up
j'en suis toujours au même point depuis hier


 
Salut  :hello:  
 
Peux tu me poster ton script complet ?  
 
Je suis très loins d'être capable de t'apporter de l'aide mais j'aimerais bien pouvoir le dépioter histoire de voire comment ça marche...  
 
Je commence tout juste (depuis deux jours) à faire du Script VB, j'ai besoin de lire des petits scripts pour pouvoir m'impregner un peu.
 
 :sol:


---------------
Mieux vaut fermer sa gueule et passer pour un con, plutot que de l'ouvrir, et montrer qu'on l'est...
n°1253324
madmartiga​n
Desperate Houseman
Posté le 25-11-2005 à 15:54:28  profilanswer
 

kioo a écrit :

Bonjour
(...), si je le fait seulement dans SYSTEM, le script proe.cmd appélé ensuite ne fonctionne pas car il n'utilise pas la valeur de la variable d'environnement "lancement_proeng" initiliasé dans le script mais la valeur au moment du lancement du script (la valeur précedente donc) ce qui ne va pas du tout.
C'est pourquoi j'initialise aussi la même valeur pour "lancement_proeng" mais dans PROCESS et là, le script proe.cmd appelé marche correctement car il utilise la bonne valeur pour "lancement_proeng".
Mais si je ne fait pas l'ajout dans SYSTEM aussi, la variable d'environnement "lancement_proeng" n'est pas référencé dans SYSTEM une fois le script terminé. Quand je vais voir dans Panneau de config/Système/Variable d'environnement/ elle n'y figure pas et donc les autres fichiers qui en ont besoins plustard ne marchent pas...
 
Donc j'aimerais comprendre pourquoi ? et si ya un autre moyen de faire parceque tel quel, çà marche mais je ne sais pas pourquoi :(


 
De ce que je connais de ce problème en BATCH-DOS...
 
On a exactement le même problème lorsqu'on travaille avec les variables "SYSTEME" : si on fait un  

setx /m MyVar Roudoudou


Et qu'ensuite on appèle cette variable MyVar dans le script, elle est inconnue.
il faut faire un

setx MyVar Roudoudou

pour la voire dans le script, le /m permet de forcer l'affectation en "SYSTEM"
Si on ouvre un autre Shell cette variable est exploitable.
 
En fait, un process ne travaille pas sur les variables SYSTEME directement, il en fait une copie dans son environnement de travail (PROCESS) et il utilise les COPIES.
En VBS il semble que ce soit la même chose : les variables SYSTEM sont les originales, les variables PROCESS sont les copies.
En fait, l'interpreteur VBS se fait passer les variables d'environement "ByVal" et non "ByRef"
 
 
Edit : orthographe et cocquilles


Message édité par madmartigan le 25-11-2005 à 15:55:53

---------------
Mieux vaut fermer sa gueule et passer pour un con, plutot que de l'ouvrir, et montrer qu'on l'est...

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Besoin d'aide avec les Variables d'Environnement en VBScript

 

Sujets relatifs
aide agendaPasser les variables d'un form en paramètre
surveillance des disque en Vbscript et Wmi "Urgent"DOM XML et variables session PHP
problème variables globales WML/PhpChemin Relatif - Aide Urgente SVP
[ACCESS] statistique a l'aide d'un bouton dans formulairedeclaration et initialisation de variables
aide VB.net crystalquestion sur les variables
Plus de sujets relatifs à : Besoin d'aide avec les Variables d'Environnement en VBScript


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR