J'ai deux variables définies par l'utilisateur:
ANT_HOME défini sur% USERPROFILE% \ Developer \ Tools \ Apache \ Apache Ant \ apache-ant-1.8.2 JAVA_HOME défini sur C: \ Program Files \ Java \ jdk1.6.0_23
Et je veux ajouter ces chemins à la variable système afin que je puisse accéder aux exécutables dans leurs dossiers bin. j'ai essayé
PATH défini sur [autres chemins];% ANT_HOME% \ bin;% JAVA_HOME% \ bin
Mais ça ne marche pas. Lorsque j'ouvre une invite de commande et que je répète% PATH%, les variables utilisateur ne sont pas développées . Ainsi, le chemin affiche simplement le littéral,;% ANT_HOME% \ bin;% JAVA_HOME% \ bin
Il me semble que cela fonctionne bien sur mes anciens systèmes Windows XP. Comment configurer cela sur Windows 7?
windows-7
environment-variables
Michael Prescott
la source
la source
Réponses:
MISE À JOUR NO.2 - Passons maintenant à la question réelle : pourquoi les variables imbriquées créées par l'utilisateur ne se développent-elles pas?
Il y a quelques problèmes généraux concernant l'expansion variable dans Windows. J'ai déjà rencontré le même problème et je n'ai trouvé aucune circonstance claire et reproductible - le niveau de récursivité auquel l'extension échoue n'est pas cohérent, les caractères spéciaux ne semblent pas jouer de rôle, etc.
La seule solution viable que j'ai trouvée consiste à ajouter des variables niveau de récursivité par niveau de récursivité. Cela signifie: essayez de supprimer toutes les variables que vous souhaitez imbriquer les unes dans les autres (y compris les appels de PATH vers vos variables définies par l'utilisateur), puis redémarrez à partir de zéro. Définissez vos variables de base (etc. ANT-HOME), validez, vérifiez si elle est développée, si c'est le cas, passez au niveau suivant de validation, vérifiez ... vous avez l'idée.
RÉPONSE MISE À JOUR - Définition de variables d'environnement permanentes à l'aide de la CLI et de l'interface graphique - Faites défiler vers le bas pour la réponse d'origine
Méthode GUI:
Sur Windows 7, tapez simplement "système" dans l'invite META et vous verrez une entrée "Modifier les variables d'environnement système". De là, cliquez sur "Variables d'environnement". Là, vous pouvez soit modifier la variable système PATH (liste du bas), soit ajouter / modifier une nouvelle variable PATH aux variables d'environnement utilisateur.
Méthode en ligne de commande:
Pour modifier définitivement les variables d'environnement, vous devez utiliser la commande SETX dans la ligne de commande Windows. Contrairement à d'autres versions de Windows, il est intégré à Windows 7. Sa syntaxe diffère beaucoup de SET, mais elle est également puissante. Vous devrez cependant être un peu prudent, il est facile de gâcher vos variables avec SETX.
Par défaut, vous modifiez les variables utilisateur . Vous pouvez avoir une variable d'environnement utilisateur PATH qui coexiste avec bonheur avec la variable PATH système. Si vous ne l'avez pas encore défini, faites-le en tapant:
SETX PATH yourpath
Vous pouvez également ajouter une valeur à la variable système PATH. Pour ce faire, vous devez d'abord afficher une ligne de commande avec des privilèges d'administrateur. Pour ce faire, appuyez sur la touche Meta (Windows), tapez
cmd
et appuyez surCTRL
+SHIFT
+ENTER
et confirmez la boîte de dialogue UAC.Pour ajouter de nouvelles valeurs au chemin, vous pouvez maintenant saisir
Il est important de suivre cette syntaxe! Si vous n'incluez pas% path% en premier, toutes les valeurs existantes de path seront perdues et remplacées par votre nouveau chemin uniquement. Le commutateur / m à la fin définit la variable dans l'environnement système.
Veuillez noter que vous devrez faire apparaître une nouvelle ligne de commande pour utiliser votre nouvelle variable.
Il existe également une référence complète pour SETX sur TechNet .
ANCIENNE REPONSE La commande SET met à jour les variables uniquement pour la durée de la session de ligne de commande en cours.
La syntaxe correcte pour ajouter une valeur à une variable est 'set [variable] =% [variable]%; [new value] `
Notez qu'à gauche du signe égal, vous devez omettre les signes de pourcentage!
Source: référence de ligne de commande TechNet pour Windows Server
la source
Un article du support Microsoft datant de 2007 - numéro 329308 - décrit un bogue dans Shell32.dll, qui est la cause de ce problème. La solution consiste à ajouter une
PATH
variable à la liste des variables utilisateur définie surCela a permis de contourner le problème. Je n'aime pas le configurer uniquement pour mon utilisateur, mais mon système présente en quelque sorte les symptômes de ce vieux bogue et je ne vois pas d'autre meilleure réponse pour le moment.
la source