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

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

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

  • Сменить каталог на сетевой диск в Cygwin
  • Cygwin Mintty unicode не отображается неудачно, несмотря на то, что dejavu sans mono и все
  • Как установить gpg на cygwin? В настоящее время он отсутствует
  • Как отформатировать Ext2 в Windows XP?
  • SSH для github с использованием CygWin не работает
  • Использование git через cygwin на окнах 8
  • Невозможно установить разрешения с помощью Cygwin в Windows 7
  • Как добавить Python к пути Windows
  • Переменные среды в bash_profile или bashrc?
  • VIM, показывающий «m» возле белого пространства на Cygwin
  • Где хранить скрипты bash, которые все пользователи могут выполнять на Debian?
  • Избегайте нежелательного пути в Zip-файле
  • 2 Solutions collect form web for “Как обновить переменные среды оболочки cygwin, установленные в окне «Свойства системы»”

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

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

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

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

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

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

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

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