2010-09-28 10 views
0

J'utilise un système Windows 7 sur lequel je veux pouvoir définir une variable d'environnement système et pouvoir la voir dans les invites de commande suivantes que je lance. Quand je mets la variable d'environnement système en utilisant "setx" cela fonctionne bien, Mais étant donné que je veux utiliser le même code de script pour XP et Windows 7, je ne peux pas le faire sur XP car XP ne vient pas par défaut avec setx .Définition d'une variable d'environnement sans redémarrage sous Windows

donc je dois recourir à l'aide de WMI pour définir les variables d'environnement:

J'utilise cette following code pour définir la variable:

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 

Set objVariable = objWMIService.Get("Win32_Environment").SpawnInstance_ 

objVariable.Name = "TestKey" 
objVariable.UserName = "<System>" 
objVariable.VariableValue = "TestValue" 
objVariable.Put_ 

Mais maintenant, quand je lance une nouvelle invite de commande, la la variable d'environnement ne prend pas effet; Cependant, si je redémarre le système, il prend effet; Et quand je vais à MyComputer> Propriétés> Paramètres système avancés> Variables d'environnement, alors je vois la valeur "TestKey" présente là; Et quand j'appuie sur le bouton "OK" et que je lance une nouvelle invite de commande, la valeur "TestKey" semble apparaître comme par magie; Y a-t-il un moyen pour que la variable d'environnement système apparaisse dans les invites de commande suivantes sans avoir à cliquer sur OK dans la fenêtre Variables d'environnement (dans Propriétés système) ou à redémarrer la machine?

Répondre

1

Vous pouvez installer les outils de support de Windows XP Service Pack 2, qui incluent setx. Nous l'utilisons depuis quelques années pour facilement activer les environnements de développement entre différents niveaux de Java, Weblogic, JBoss, etc. car nous supportons de nombreuses versions différentes.

Espérons que cela aide!

Questions connexes