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

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

Т.е. в bash я могу просто «source ~ / .bashrc»

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

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

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

Настройка и восстановление основной среды в Windows – это то, что люди BartPE потратили много времени.

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

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

CONSET и 4NT Фрэнка Уэстлейка могут извлекать записи из реестра, но нет переключателей для основной среды, в частности.

Обычно загруженные окна отслеживают настройки в реестре, а одно загруженное через minint (т.е. WinPE) – нет. Поэтому настройка реестра и реестра чтения работает в обоих случаях, но только нормально загруженные окна будут видеть настройки и передавать их на новую программу cmd, exe.

Это зависит от того, где вы «задаете» переменные среды. Эквивалент вашего примера bash будет следующим:

Файл: env.bat

 set FOO=bar 

И теперь вы его обновляете

 % call env.bat 

Но я думаю, что вы сделали это через диалог windows-system-settings (или как бы там ни было его название). Результатом этого является то, что вы действительно изменили реестр. Эти параметры реестра отображаются в процессе при запуске нового процесса.

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

  • Командная строка для поиска файлов в папке в папках в проводнике Windows
  • Возможность Windows 7 SYSTEM cmd?
  • Как запустить команду / скрипт оболочки при вводе / cd-в каталоге на Snow Leopard?
  • Почему «ipconfig» не распознается как внутренняя или внешняя команда?
  • Не может исключить путь с пространством (xcopy)
  • Можно ли отключить компьютер через интерфейс командной строки?
  • CMD: Как использовать неанглийские символы?
  • Используя средство командной строки cURL на Mac, что я могу сделать с этим скриптом, чтобы попросить его получить данные запаса, которые возвращаются без запятых?
  • Как изменить конфигурацию прокси-сервера Windows7 из командной строки?
  • Есть ли способ отображения таймера обратного отсчета или секундомера в терминале?
  • Быстрый способ установки DevCon.exe?
  • Interesting Posts

    Активность Android SDK WebView

    Подсчитайте количество появлений слова в строке

    Как извлечь данные из частично поврежденного многостраничного rar-архива?

    Настройки прокси-сервера Internet Explorer не сохраняются

    Подключитесь к удаленному рабочему столу через mstsc автоматически через имя пользователя и пароль

    Почему закрытие консоли, запущенной с помощью AllocConsole, вызывают выход моего приложения? Могу ли я изменить это поведение?

    SLF4J: Не удалось загрузить class «org.slf4j.impl.StaticLoggerBinder». ошибка

    Как передать данные из дочернего компонента в родителя в ReactJS?

    Почему некоторые процессы Windows продолжают записываться на диск даже на системном простоя?

    Как скопировать столбец с условным форматом «значение» – Libreoffice 4.1

    Express.js req.ip возвращает :: ffff: 127.0.0.1

    Как отключить микропроцессор от радиатора?

    Что делает промывка DNS?

    Отправить HTTP-запрос GET с заголовком

    7-zip для linux

    Давайте будем гением компьютера.