9

У меня есть две пользовательские переменные:

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

И я хочу добавить эти пути к системной переменной, чтобы я мог получить доступ к исполняемым файлам в их папках bin. Я старался

PATH установлен на [другие пути];% ANT_HOME%\bin;% JAVA_HOME%\bin

Однако это не работает. Когда я открываю командную строку и echo% PATH%, пользовательские переменные не раскрываются. Таким образом, путь просто показывает литерал;;% ANT_HOME%\bin;% JAVA_HOME%\bin

Кажется, я помню, что это нормально работало на моих старых системах Windows XP. Как мне установить это на Windows 7?

2 ответа2

5

ОБНОВЛЕНИЕ № 2 - Теперь к актуальному вопросу: почему вложенные, созданные пользователем переменные не могут быть расширены?

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

Единственный возможный обходной путь, который я нашел, - это добавление уровня рекурсии переменных по уровню рекурсии. Это означает: попробуйте удалить все переменные, которые вы хотите вложить друг в друга (включая вызовы из PATH в ваши пользовательские переменные), а затем запустить с нуля. Определите ваши основные переменные (и т.д. ANT-HOME), подтвердите, проверьте, развернут ли он, если это так, переходите к следующему уровню, проверьте ... вы поняли идею.

ОБНОВЛЕННЫЙ ОТВЕТ - Определение постоянных переменных среды с помощью CLI и GUI - Прокрутите вниз для получения исходного ответа

GUI метод:

В Windows 7 просто введите "system" в META-Prompt, и вы увидите запись "Редактирование переменных системной среды". Оттуда, нажмите "Переменные среды". Там вы можете либо отредактировать системную переменную 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 обновляет переменные только на время текущего сеанса командной строки.

Правильный синтаксис для добавления значения в переменную: «set [variable] =% [variable]%; [новое значение]`

Обратите внимание, что слева от знака равенства вы должны опустить знаки процента!

Источник: TechNet Справочник по командной строке для Windows Server

1

В статье службы поддержки Microsoft, выпущенной в 2007 году, номер 329308, описывается ошибка в Shell32.dll, которая является причиной этой проблемы. Решение состоит в том, чтобы добавить переменную PATH в список пользовательских переменных, для которого установлено значение

%ANT_HOME%\bin;%JAVA_HOME%\bin

Это обошло проблему. Мне не нравится устанавливать его только для моего пользователя, но почему-то моя система демонстрирует симптомы этой старой ошибки, и другого лучшего ответа пока не вижу.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .