Обновить переменную среды

Как обновить командную консоль Windows после изменения переменных среды?

т. е. в bash я могу просто сделать " source ~/.bashrc"

22
задан portoalet
23.02.2023 4:37 Количество просмотров материала 3418
Распечатать страницу

3 ответа

это действительно зависит от того, как были установлены переменные среды. Если, например, вы использовали команду "SET"в командной строке, она влияет только на текущий экземпляр. С другой стороны, такие команды, как "SETX" будут постоянно корректировать значение переменной окружения. SETX гарантирует, что все будущие экземпляры cmd будут видеть обновление. Это не повлияет на местную среду.

если переменная среды задана другим приложением и не обновляется, это часто проще всего либо перезапустить "Проводник.exe " процесс, выход из системы и обратно в, или перезагрузка. по существу, вам просто нужно сказать explorer, чтобы перезагрузить переменные среды. Если это приложение, которое вы разработали, например установщик, убедитесь, что он вызывает SendMessage (HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)"Environment");. Это указывает проводнику обновить кэш переменных среды.

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

2
отвечен Chris Crutchfield 2023-02-24 12:25

установка и retreving мастер-среды в Windows-это то, что BartPE люди потратили много времени на.

основная среда хранится в реестре, но оболочка проводника считывает ее адрес. Отсюда он отправляется каждому командиру.исполняемые сессии.

SET влияет только на среду cmd. SETX позволяет изменять мастер-среде, но не отражено в местной среде.

КОНСЕТ Фрэнка Вестлейка и 4NT может извлекать записи из реестра, но никаких переключателей для основной среды, в частности.

нормально загруженной Windows сохраняет настройки в реестр, а загружается через МВД (т. е. ОС) не. Таким образом, настройка реестра и чтение реестра работает в обоих, но только нормально загруженные окна будут видеть настройки и передать их на новый cmd,exe программы.

1
отвечен wendy.krieger 2023-02-24 14:42

это зависит от того, где вы "устанавливаете" переменные среды. эквивалент в вашем примере Баш будет такой:

файл: env.летучая мышь

set FOO=bar

а теперь обнови

% call env.bat

но я думаю, что вы сделали это через Windows-system-settings-dialog (или как его там зовут). в результате вы фактически изменили реестр. эти параметры реестра сопоставляются с процессом при запуске нового процесса.

так, можно запустить новый процесс (cmd.exe в вашем случае) или вы можете прочитать разделы реестра, отражающие изменения, которые вы хотите. вы также можете написать немного .летучая мышь. / cmd скрипт, который получает окружение из реестра и изменяет текущее окружение согласно (если настроение меня поразит я сделаю это после обеда).

0
отвечен akira 2023-02-24 16:59

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх