Як додати визначені користувачем змінні середовища до системної змінної PATH в Windows 7?


9

У мене є дві змінні, визначені користувачем:

ANT_HOME встановлено на% USERPROFILE% \ Developer \ Tools \ Apache \ Apache Ant \ apache-ant-1.8.2 JAVA_HOME встановлено на C: \ Program Files \ Java \ jdk1.6.0_23

І я хочу додати ці шляхи до змінної системи, щоб я мав доступ до виконуваних файлів у своїх бінних папках. я намагався

PATH встановлено [інші шляхи];% ANT_HOME% \ bin;% JAVA_HOME% \ bin

Однак це не працює. Коли я відкриваю командний рядок і лунає% PATH%, користувацькі змінні не розширюються . Таким чином, шлях просто показує буквальний,% ANT_HOME% \ bin;% JAVA_HOME% \ bin

Я, здається, згадую це добре працює на моїх старих системах Windows XP. Як налаштувати це на Windows 7?


Щойно я знайшов статтю служби підтримки Microsoft ще в 2007 році з описом помилки в Shell32.dll. Я додав змінну PATH до мого списку змінних користувачів, PATH встановлено на% PATH%;% ANT_HOME% \ bin;% JAVA_HOME% \ bin та вирішив проблему. Мені не подобається встановлювати його лише для свого користувача, але якось моя система виявляє симптом цієї старої помилки, і я ще не бачу іншого кращого відповіді. Стаття знаходиться за адресою: support.microsoft.com/kb/329308
Майкл Прескотт

Відповіді:


5

ОНОВЛЕННЯ NO.2 - Тепер до актуального питання: Чому вкладені, створені користувачем змінні, не вдається розширитись?

Існують деякі загальні проблеми, що стосуються розширення в Windows. Я вже зіткнувся з тією ж проблемою і не знайшов чітких, відтворюваних обставин - рівень рекурсії, при якому розширення не вдається, не є послідовним, спеціальні символи, схоже, не грають ролі тощо.

Єдине життєздатне рішення, яке я знайшов, - це додавання змінних рівня рекурсії за рівнем рекурсії. Це означає: Спробуйте видалити всі змінні, які ви хочете вкладати одна в одну (включаючи виклики з PATH до ваших визначених користувачем змінних), а потім запустіть з нуля. Визначте основні змінні (і т. Д. ANT-HOME), введіть, перевірте, чи він розширений, якщо він є, продовжуйте виконувати наступний рівень, перевіряйте ... ви отримаєте ідею.

ОНОВЛЕННЯ ВІДПОВІДЬ - Визначення змінних постійної середовища за допомогою CLI та GUI - Прокрутіть униз для вихідної відповіді

Метод GUI:

У Windows 7 просто введіть "system" у підказці META, і ви побачите запис "Редагування змінних системного середовища". Звідти натисніть «Змінні середовища». Там ви можете або змінити системну змінну PATH (нижній список), або додати / редагувати нову змінну PATH до змінних середовища користувача.

Метод командного рядка:

Щоб постійно змінювати змінні середовища, вам потрібно використовувати команду SETX у командному рядку Windows. На відміну від інших версій Windows, він вбудований в Windows 7. Його синтаксис сильно відрізняється від SET, але він також потужний. Вам доведеться бути дещо обережним, неважко зіпсувати свої змінні за допомогою SETX.

  • За замовчуванням ви змінюєте користувацькі змінні . Ви можете мати змінну середовища користувача PATH, яка щасливо співіснує із системною змінною PATH. Якщо у вас цього ще немає, зробіть це, ввівши:SETX PATH yourpath

  • Ви також можете додати значення до системної змінної PATH. Для цього спочатку потрібно вивести командний рядок з правами адміністратора. Для цього натисніть клавішу Meta (Windows), наберіть cmdі натисніть CTRL+ SHIFT+ ENTERта підтвердьте діалогове вікно UAC.

Щоб додати нові значення до шляху, тепер можна ввести

setx path "%path%;yournewpath" /m

Важливо дотримуватися цього синтаксису! Якщо ви не включите спочатку% path%, всі існуючі значення шляху будуть втрачені та замінені лише вашим новим шляхом. Перемикач / m в кінці встановлює змінну в системному середовищі.

Зауважте, що вам доведеться створити новий командний рядок, щоб використовувати вашу нову змінну.

Також у TechNet є повна довідка для SETX .

СТАРИЙ ВІДПОВІДЬ Команда SET оновлює змінні лише протягом тривалості поточного сеансу командного рядка.

Правильний синтаксис для додавання значення до змінної - "встановити [змінну] =% [змінну]%; [нове значення]`

Зауважте, що зліва від знаку рівності ви повинні опустити знаки відсотків!

Джерело: Довідка командного рядка TechNet для Windows Server


1
Дякую за дуже детальну відповідь. Я особисто завжди віддав перевагу методу GUI, тому що думаю, що простіше спілкуватися зі своєю командою. Я наголосив на проблемі, яку я маю в своєму початковому дописі для наочності. Користувацькі змінні не розширюються в Windows 7, як це було в Windows XP. Це більше не працює або я повинен розслідувати безпеку чи інші налаштування системного адміністратора, які можуть блокувати звичну поведінку?
Майкл Прескотт

Це дуже приємний спосіб сказати "Ти зовсім
поза

... і тепер мої 2 копійки на власне питання. Дивіться останню редагування відповіді.
Тобіас Плутат

1

Стаття про підтримку Microsoft, починаючи з 2007 року - номер 329308 - описує помилку в Shell32.dll, яка є причиною цієї проблеми. Рішення полягає в тому, щоб додати PATHзмінну до списку змінних користувачів, на яку встановлено

%ANT_HOME%\bin;%JAVA_HOME%\bin

Це вирішило проблему. Мені не подобається встановлювати його лише для свого користувача, але якось моя система виявляє симптоми цієї старої помилки, і я ще не бачу іншого кращого відповіді.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.