Я ищу удобный способ добавить и / или изменить и / или удалить переменную среды из командной строки. В частности, я иногда оказываюсь в ситуациях, когда мне нужно добавить несколько переменных в cmd.exe.
Я был бы признателен, если бы кто-то показал мне не-GUI способ изменить (то есть: добавить новый каталог) %PATH%
переменную.
Изменение должно быть постоянным, а не только на время cmd
сеанса.
command-line
environment-variables
Рене Ниффенеггер
источник
источник
Ответы:
Олд-школа метод прямого управления переменными реестра с помощью команды reg был на деньги. Вот как вы это делаете:
Добавьте это в однострочный скрипт с именем apath.bat, который выглядит следующим образом:
Затем все, что вам нужно указать, - это путь к новому каталогу, который вы добавляете при вызове скрипта, и вы набираете номер:
Например: apath.bat% addonpath%
Хотя Хинч прав. Лучший способ сделать это, если вы используете Vista или выше, - это использовать команду SETX, которая предназначена для того, чтобы мы могли распространять переменные среды без риска прямого манипулирования реестром с помощью команды reg, которая может спасти вашу машину, если Вы манипулируете переменными ENV достаточно, чтобы использовать их на лету.
источник
Вы могли бы использовать setx.
Пользовательская переменная:
Системная переменная:
источник
echo %PATH%
, вы видите их вместе, как<system path>;<user path>
. Таким образом, первая команда приведет к тому, что текущие элементы системного пути появятся в пути пользователя (что не так уж плохо), а вторая команда приведет к тому, что текущие элементы пользовательского пути появятся в системном пути (что недопустимо).Вы можете использовать
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorun
ключ реестра, чтобы указать на командный файл, чтобы позволить вам вносить полупостоянные изменения, не углубляясь в непонятные диалоги настроек.источник
Если вы не хотите использовать графический интерфейс (как в Панели управления, Система, Дополнительно, Переменные среды, PATH), вы можете использовать его
REG
для установкиHKCU\Environment\PATH
.%PATH%
REG ADD HKCU\Environment /v PATH /t REG\_EXPAND\_SZ /d "%PATH%" /f
В
/f
силах перезаписи существующего значения , так что вы не должны интерактивно ответить на вопрос.Редактировать:
%PATH%
необходимо указать.Изменить: Также стоит отметить, что это, вероятно, требует перезагрузки или повторного входа в систему, прежде чем он вступит в силу. При изменении его в GUI вступает в силу немедленно (для новых
cmd.exe
сессий).Ссылка: http://support.microsoft.com/kb/104011
Как отмечено в ссылке, если вы хотите написать некоторый код, вы можете отправить WM_SETTINGCHANGE, и это должно избежать требования входа / выхода из системы.
источник
REG QUERY HKCU\Environment /v PATH
.Путь в текущем процессе cmd.exe легко изменить:
Вы всегда можете выполнить HELP PATH для получения справки по команде PATH.
источник
Для действительно постоянных общесистемных изменений вы действительно хотите использовать Системную панель управления (или Мой компьютер -> Свойства -> Дополнительно -> Переменные среды, для WinXP). Настройки там влияют на всю вашу систему, включая программы с графическим интерфейсом в оболочке Explorer.
Если вам нужны только эти изменения в
cmd.exe
оболочке, вы можете запустить пакетный файл, который устанавливает их при каждом запуске окна cmd.exe. В ответе Фоши упоминаетсяHKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorun
, что кажется отличным вариантом - легко вносить небольшие изменения и повторно запускать из командной строки, если это необходимо. Но это не повлияет на окна GUI или оболочку Explorer.Я на самом деле удивлен, что у Sysinternals нет способной утилиты сделать это. Может быть, другой из PStools может сделать это?
источник
Много способов сделать это. REG ADD равен единице, или REG IMPORT (используется экспортированный файл .REG с другого компьютера). SETX / M это другое. Вы также можете вытолкнуть его с помощью предпочтений групповой политики (простой способ для большого количества компьютеров).
источник
Еще одна мысль, не упомянутая здесь, создайте скрипт autohotkey, который запустит панель управления и введите его для вас. Это хорошо работает, если вы уже являетесь пользователем AHK :-)
https://autohotkey.com/board/topic/63210-modify-system-path-gui/
А как насчет редактирования hklm / system / currentcontrolset001 / control / диспетчера сеансов / окружения: ключ пути? Но тот же ключ находится в hklm / system / currentcontrolset002 и hklm / system / currentcontrolset. Похоже, что это может быть правильно, вот здесь: /programming/3304463/how-do-i-modify-the-path-environment-variable-when-running-an-inno-setup-install
источник