强制环境变量更改立即生效

4 windows command-line cygwin

我需要CYGWIN在以下任何一个安装上更改Cygwin环境变量的值:

ntsec tty 
Run Code Online (Sandbox Code Playgroud)

回到默认值:

ntsec notty
Run Code Online (Sandbox Code Playgroud)

我可以通过.reg文件以编程方式执行此操作:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
"CYGWIN"="ntsec notty"
Run Code Online (Sandbox Code Playgroud)

但它不会影响当前或后续的命令提示,直到重新启动.我不想重启!有什么方法可以立即强制将此更改强制应用于后续命令提示吗?

dch*_*dch 7

这很容易解决,你不应该杀死资源管理器.TL; DR使用:

setx.exe var value
Run Code Online (Sandbox Code Playgroud)

在将来的命令窗口以及支持WM_CHANGESETTINGS API的所有活动窗口进程中进行更改.您也可以对系统环境变量执行此操作,这些变量将传播到支持此API的服务.

这不会更改当前的CMD.exe或cygwin shell,因为它们都不支持它.

在那些卑微的集合var = value或export var = value将需要每个shell完成一次.

http://support.microsoft.com/kb/104011了解更多信息.

A +戴夫