Как обновить переменные среды оболочки cygwin, установленные в окне «Свойства системы»

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

Есть ли способ перезагрузить информацию о пути из командной строки? Мне особенно хотелось бы знать, как я могу это сделать с моей оболочкой Cygwin, но я был бы рад узнать, как обращаться с любым случаем (Cygwin или родной терминал).

  • Как интегрировать Console2 через Cygwin (WinXP)?
  • Скопируйте список файлов, сохраняющих структуру каталогов, без скриптов
  • Верхняя команда в cygwin?
  • Как я могу использовать SSH с прокси-сервером SOCKS 5?
  • Пароль при попытке ssh на сервере с использованием Cygwin на Windows 7
  • Как вызывать gvim Windows в среде Windows из Cygwin?
  • Почему выгружать переменные в пакетные файлы Windows
  • Как получить ключи F1-F12 для переключения экранов на экране gnu в cygwin при подключении через SSH?
  • Экранирование% в именах файлов / папок в командной строке
  • Почему я могу увидеть файл, который у меня есть в CygWin, но не в проводнике Windows?
  • Как удалить / переустановить cygwin для использования sshd?
  • Найти & du для вычисления общего размера vs xargs
  • 2 Solutions collect form web for “Как обновить переменные среды оболочки cygwin, установленные в окне «Свойства системы»”

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

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

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

    С kb http://support.microsoft.com/kb/104011

    Однако обратите внимание, что изменения в переменных среды не приводят к немедленным изменениям. Например, если вы запустите другую Командную строку после внесения изменений, переменные среды будут отражать предыдущие (а не текущие) значения. Изменения не вступают в силу до тех пор, пока вы не выйдете из системы, а затем снова войдете в систему.

    Чтобы выполнить эти изменения без необходимости выходить из системы, передайте сообщение WM_SETTINGCHANGE всем окнам в системе, чтобы любые заинтересованные приложения (такие как Проводник Windows, Диспетчер программ, Диспетчер задач, Панель управления и т. Д.) Могли выполнить обновление.

    Ну в консоли Windows просто введите cmd и нажмите enter. Это технически помещает вас в новый сеанс внутри вашего другого сеанса, но у него будут новые переменные env. То, что у него не будет, – это информация сеанса из внешнего сеанса. Таким образом, любые переменные env или командная история – вот что.

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