Более простой способ изменить переменные среды в Windows 8? [Дубликат]


27

Возможный дубликат:
что такое PATH и другие переменные среды, и как я могу их установить или использовать?

Я знаю, что я могу редактировать переменные среды в Windows 8, перейдя в

Start -> All Apps -> Control panel -> System -> 
    Advanced System Settings -> Advanced -> Environment variables.

Но, честно говоря, это нелепо сложно.

Есть ли более простой способ изменить переменные среды в Windows 8?

Например, если я просто хочу добавить новую папку в PATH, очень раздражает проходить все эти шаги. Пользовательский интерфейс также отстой, потому что действительно сложно редактировать длинные значения переменных с небольшим вводом текста.

Требование 1: мне нужно сохранить изменения (например, когда я использую setв консоли изменения теряются при закрытии консоли)

Требование 2: Я бы предпочел решение, которое не включает установку дополнительных частей программного обеспечения, так как это та проблема, с которой я сталкиваюсь каждый раз, когда настраиваю новую коробку Windows.


Хороший пост на эту тему: windows-commandline.com/set-path-command-line
Royi

Ответы:


32

Вы изучали команды set и setx ? С их помощью вы можете установить постоянную переменную. Более того, значение будет применено сразу, а не после следующего входа.

Пример окна SETкоманды :

Выведите переменную среды PATH:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar

Используйте команду set для установки переменной PATH

C:\Users\Charity>set PATH=%PATH%;C:\epicpath
C:\Users\Charity>

Приведенная выше команда применяется только к текущему окну, и изменение теряется при закрытии окна cmd.

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar;C:\epicpath

Пример окна SETXкоманды :

Выведите переменную среды PATH:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar

Используйте setx для установки переменной окружения:

C:\Users\Charity>setx PATH "%PATH%;C:\zombiepoke"
SUCCESS: Specified value was saved.

Закройте и снова откройте терминал cmd, затем запустите:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar;C:\zombiepoke

Вы должны быть осторожны с двойными кавычками. Если вы позволите кавычкам попасть в переменную пути, это может что-то сломать. Однако они необходимы для указания дополнений к исходному% PATH%.


1
Спасибо за совет! Я пытался, setx PATH=%PATH%;;C:\testно я получаю синтаксическую ошибку :(
jsalonen

2
Нет знака = при использовании setx. Есть ли setx /?
EBGreen

4
Нет аргументов "setx" устанавливает переменную только в контексте пользователя. Для установки в системном контексте используйте «setx / M». Незнание этого может сбить вас с толку, поскольку «echo% PATH%» покажет объединенные системные и пользовательские значения.
Vituel

Обратите внимание, что вы должны перезапустить оболочку после внесения этого изменения, чтобы она вступила в силу.
Дуг

незначительное примечание: set path= ~ echo %PATH% [ set pathпоказывает также значение PATHEXT]
gerryLowry

10

Установите переменную окружения в Windows 8.

Вы можете получить доступ к дополнительной настройки системы , щелкнув правой кнопкой мыши Computerв file-explorerи собирается properties.

Это так же, как старые версии Windows. Вы также можете установить переменные окружения из командной строки, как указано здесь:

Что такое PATH и другие переменные среды, и как я могу их установить или использовать?


4

Я меняю их в Powershell. Например, чтобы добавить папку в переменную PATH, откройте powershell, затем:

$newPath = $env:Path + ';C:\Temp'
[Environment]::SetEnvironmentVariable('Path', $newpath, 'Machine')

Это изменило бы это для всех пользователей. Чтобы изменить его только для пользователя, выполняющего команду, измените этот последний параметр на «Пользователь». Или просто временно изменить его в этом сеансе:

$env:Path += ';C:\temp'

отличный! Как вы делаете конкатенацию $ env: Path + '; C: \ Temp' в командной строке? Решения Set & Setx здесь объясняют, как установить полный путь в командной строке, но ни одно не объясняет, как добавить что-либо к существующему пути.
Джонни, почему

Вот как ДОБАВИТЬ что-то к существующему пути в командной строке. / M используется для изменения переменной SYSTEM, а не переменной USER. Кавычки используются, поскольку «Моя папка» содержит пробелы: setx PATH «% PATH%; C: \ Моя папка» / M
Джонни, почему

Единственная проблема с использованием командной строки - ограничение в 255 символов, и системный PATH, вероятно, превысит это (особенно, если вы добавляете больше каталогов). Поэтому Powershell - это путь (я могу ошибаться, но я считаю, что в Powershell нет ограничений по количеству персонажей).
Джонни, почему

3

Это довольно легко в командной строке:

set MyVar=HelloWorld

(чтобы попасть в командную строку, введите cmdс начального экрана>.)

Чтобы просмотреть переменную:

echo %MyVar%

Используйте setxдля постоянной установки переменной. Синтаксис немного отличается. Попробуйте поискать здесь , или есть много других сайтов, которые расскажут вам, как его использовать.


Да, спасибо, я уже знаю это, но проблема в том, что если вы делаете изменения таким образом, они не сохраняются - то есть, когда я закрываю и снова открываю командную строку, переменные возвращаются к значениям по умолчанию. Обновил мой вопрос, чтобы отразить это - извините.
jsalonen

Знаете ли вы, если я могу сделать это setбудет сохраняться?
Jsalonen

1
setx для постоянных изменений
EBGreen

Есть ли способ установить переменную только до следующего перезапуска? В противном случае, если я буду использовать set из другой программы (скажем, команду OS из Python или MATLAB), будет ли он удерживаться до тех пор, пока сеанс программы открыт?
Рой
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.