Как я могу отобразить содержимое переменной среды из командной строки в Windows 7?

477

В Windows 7, когда я запускаю командную строку, есть ли какая-либо команда для отображения содержимого переменной среды (например, переменных JAVA_HOMEили PATH)?

Я попытался с echo $PATH, echo PATHи , $PATHно ни один из них не работает.

Jonas
источник
26
@Daniel: я знаю, как устанавливать переменные среды в Windows, я просто открываю «Свойства системы»> «Дополнительно» и «Переменные среды». Поэтому я не ожидаю ответа на мой вопрос в вопросе, озаглавленном «Как мне установить PATH и другие переменные среды?» потому что я знаю это! Я не спрашиваю о том, как их установить.
Джонас
В некотором смысле вы правы - как один из авторов другой темы, я давно не замечал точную формулировку. Я отредактировал эту тему, чтобы отразить ее фактическое содержание. Я не собираюсь менять голосование, хотя и потому, что не могу, и потому, что я верю в то, что эта тема не требует каких-либо исследований.
Даниэль Бек
Может быть уместный: stackoverflow.com/questions/1884071/...
технофилы
2
echo %path:;=&echo.%получает красивый список путей через точку с запятой. Работает, если переменная не содержит специальных символов, таких как &или ^.
Андри
1
Команда для печати пути в командной оболочке Windows:path
Вячеслав Лановец

Ответы:

534

В командной строке Windows синтаксис echo %PATH%

Чтобы получить список всех переменных среды, введите команду set

Чтобы отправить эти переменные в текстовый файл, введите команду set > filename.txt


Связанный

RedGrittyBrick
источник
1
Почему это значение отличается от того, что я указал в свойствах компьютера?
Johnny_D
2
@Johnny_D Вероятно, либо у вас есть переменная области пользователя, либо переменная области сеанса (использование setкоманды в командной строке не сохраняет изменения после закрытия окна консоли), которое переопределяет его.
Скотт Чемберлен
@RedGrittyBrick, как вы отличаете те, которые установлены в системе от тех, которые предназначены только для текущего пользователя?
Pacerier
@Pacerier, это был бы отдельный вопрос
RedGrittyBrick
119

В дополнение к предыдущему ответу, если вы используете Powershell echo %PATH%не будет работать. Вместо этого вам нужно использовать следующую команду:echo $Env:PATH

Джерард Инь
источник
15
Также в PS: ls env:для перечисления всех переменных среды
Джордж Мауэр
2
Поскольку PowerShell теперь является оболочкой по умолчанию в современных ОС Windows, за это нужно проголосовать выше. Слишком много ответов, которые больше не работают на современных Windows.
Лев
1
@Lev. Какая у вас версия, у которой нет cmd?
Безумный физик
Так как же показать переменную, если ее имя содержит точку? Как artifactory.user.name? echo $Env:artifactory.user.nameне работает (выделение означает, что он пытается показать artifactoryпеременную)
YakovL
21

В качестве дополнительной информации: хотя SET работает с глобальными или системными переменными, иногда вы хотите записать и прочитать пользовательские переменные, и это делается с помощью команды SETX . SETX входит в базовую установку Windows, начиная с Vista, но также был доступен в Windows XP, установив Resource Pack.

Одно отличие от SETX заключается в том, что вы не можете прочитать переменную в том же командном окне, в котором вы ее записали. Вы должны написать команду SETX в одном окне Command или Powershell, а затем открыть новое окно, чтобы прочитать его с помощью ECHO.

SETX также может записывать глобальные или системные переменные.

Чтобы установить переменную пользователя с помощью SETX:

setx variable value

Чтобы установить глобальную или системную переменную с помощью SETX:

setx /m variable value

Чтобы прочитать пользовательскую или глобальную переменную:

Помните, что вы должны открыть новое окно Command или Powershell, чтобы прочитать эту переменную.

echo %variable%
music2myear
источник
8

Из SET / ?:

SET P

будет отображать все переменные, которые начинаются с буквы «P»

Например, если вы хотите найти значение переменной окружения% PATH%, вы можете просто напечатать set path.

Это на 3 символа короче echo %PATH%, но обратите внимание, что в нем также перечислены другие переменные, начинающиеся с «пути» (например, PATHEXT).

AXO
источник
3

Для меня решение было несколько иным: оно не распознает системную переменную среды JAVA_HOME, поэтому мне пришлось установить ее JAVA_HOMEкак переменную среды пользователя, чтобы я мог использовать% JAVA_HOME% при настройке системной переменной среды.

Возобновляя, мне пришлось:

-добавить переменную среды пользователя: %JAVA_HOME%as:

"C:\Program Files\Java\jdk1.8.0_25";

-добавить к %PATH%системной переменной среды:

"%JAVA_HOME%\bin;"

-latter в командной строке:

echo %JAVA_HOME%и он получил правильный путь (до того, как не узнал); echo %PATH%и извлек "C: \ Program Files \ Java \ jdk1.8.0_25 \ bin", составленный из пользовательской переменной% JAVA_HOME%;

И это сработало для меня. Я надеюсь, что это помогает!!

JoaoPT
источник
2

Для отображения содержимого переменной среды, например. путь, в командной строке введите: echo %path%
Чтобы отобразить значения в отдельных строках, введите: set
Чтобы отобразить все переменные, начинающиеся с «h», введите: set h
(Нажмите клавишу ввода после ввода, чтобы получить ответ компьютера, да!)

Выше команды для cmd, а не powershell. В powershell введите: echo $env:pathили ls env:path
Чтобы отобразить в отдельных строках, введите: ls env:
Чтобы отобразить все переменные, начинающиеся с «h», введите: ls env:h*
Для отображения содержимого / значений всех переменных, содержащих «java», введите:ls env:*java*

Zimba
источник