201 votes

Définir une variable d'environnement système à partir d'un fichier batch Windows ?

Est-il possible de définir une variable d'environnement au niveau du système à partir d'une invite de commande dans Windows 7 (ou même XP d'ailleurs). Je fonctionne à partir d'une invite de commande élevée.

Lorsque j'utilise le set ( set name=value ), la variable d'environnement semble n'être valable que pour la session de l'invite de commande.

183voto

Hugh Allen Points 3799

Les outils de support XP (qui peuvent être installés à partir de votre CD XP) sont fournis avec un programme appelé setx.exe :

C:\Program Files\Support Tools>setx /?

SETX: This program is used to set values in the environment
of the machine or currently logged on user using one of three modes.

1) Command Line Mode: setx variable value [-m]
   Optional Switches:
    -m  Set value in the Machine environment. Default is User.

...
For more information and example use: SETX -i

Je pense que Windows 7 est livré avec setx dans le cadre d'une installation standard.

7 votes

Windows 7 (peut-être Vista déjà) a fixé la normex, avec un changement mineur ? il n'y a pas de -i et simplement exécuter setx /? affiche toute l'aide + les exemples

3 votes

Rappelez-vous que vous pouvez toujours vérifier si vous avez ce programme sur votre chemin en tapant where et ensuite le nom du programme (donc dans ce cas-ci where setx.exe En testant cela sur un serveur 2008 et un serveur 2008SP2, j'ai constaté que dans les deux cas, le problème existait à l'adresse suivante %windir%\System32\setx.exe

2 votes

@stijn - La version Win7 a aussi officiellement changé l'introducteur de drapeau de - à la barre oblique / . Cependant, il semble que le - fonctionne toujours.

150voto

Mindaugas Points 472

Exemple simple pour savoir comment définir JAVA_HOME avec setx.exe en ligne de commande :

setx JAVA_HOME "C:\Program Files (x86)\Java\jdk1.7.0_04"

Ceci va définir la variable d'environnement "JAVA_HOME" pour l'utilisateur actuel. Si vous voulez définir une variable pour tous les utilisateurs, vous devez utiliser l'option "-m". Voici un exemple :

setx -m JAVA_HOME "C:\Program Files (x86)\Java\jdk1.7.0_04"

Note : vous devez exécuter cette commande en tant qu'Administrateur.

Note : Assurez-vous d'exécuter la commande setx d'un fenêtre d'administration en ligne de commande

7 votes

Notez également que certains outils n'aiment pas les espaces dans JAVA_HOME, il est donc intéressant d'utiliser Progra~1 comme ça : setx /M JAVA_HOME "C:\Progra~1\Java\jdk1.7.0_09"

1 votes

Où était-ce pendant toute ma vie ?

2voto

FractalSpace Points 739

Pour XP, j'ai utilisé un outil (gratuit/donateur) appelé "RAPIDEE" (Rapid Environment Editor), mais SETX est certainement suffisant pour Win 7 (je ne le savais pas avant).

1voto

abort Points 1

Au cas où vous auriez besoin de supprimer une variable, vous pouvez utiliser SETENV de Vincent Fatica disponible à l'adresse suivante http://barnyard.syr.edu/~vefatica . Pas tout à fait récent ('98) mais fonctionne toujours sous Windows 7 x64.

5 votes

Setx vous permet de supprimer également en mettant la valeur à blanc

0voto

user3340548 Points 1

Les variables d'environnement de l'utilisateur et du système peuvent être définies à l'aide de DTREG.exe, disponible à partir de l'adresse suivante http://thegoldenear.org/dtreg.zip comme suit :

DTREG -EnvSet NAME="VALEUR"

DTREG -MachineEnvSet NAME="VALUE"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X