Принудительное изменение переменных среды - PullRequest
4 голосов
/ 23 июня 2011

Мне нужно изменить значение переменной среды Cygwin CYGWIN в одной из моих установок с:

ntsec tty 

вернуться к значению по умолчанию:

ntsec notty

Я могу сделать это программно через файл .reg:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
"CYGWIN"="ntsec notty"

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

1 Ответ

7 голосов
/ 23 июня 2011

Это очень легко исправить, и вы не должны убивать проводника, чтобы сделать это. TL; DR использовать:

setx.exe var value

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

Это не меняет текущий CMD.exe или оболочку cygwin, поскольку ни один из них не поддерживает его.

В этих случаях простой набор var = value или export var = value необходимо будет выполнить один раз для каждой оболочки.

http://support.microsoft.com/kb/104011 для получения дополнительной информации.

A + Dave

...