Более простой способ изменить переменные среды в 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.

jsalonen
источник
Хороший пост на эту тему: 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 и другие переменные среды, и как я могу их установить или использовать?

Vishesh
источник
4

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

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

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

$env:Path += ';C:\temp'
EBGreen
источник
отличный! Как вы делаете конкатенацию $ 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для постоянной установки переменной. Синтаксис немного отличается. Попробуйте поискать здесь , или есть много других сайтов, которые расскажут вам, как его использовать.

ACarter
источник
Да, спасибо, я уже знаю это, но проблема в том, что если вы делаете изменения таким образом, они не сохраняются - то есть, когда я закрываю и снова открываю командную строку, переменные возвращаются к значениям по умолчанию. Обновил мой вопрос, чтобы отразить это - извините.
jsalonen
Знаете ли вы, если я могу сделать это setбудет сохраняться?
Jsalonen
1
setx для постоянных изменений
EBGreen
Есть ли способ установить переменную только до следующего перезапуска? В противном случае, если я буду использовать set из другой программы (скажем, команду OS из Python или MATLAB), будет ли он удерживаться до тех пор, пока сеанс программы открыт?
Рой