以下代码未按预期返回“Y”。它只适用于下一个会话(另一个新窗口)吗?我希望它能立即上市吗?
[Environment]::SetEnvironmentVariable("X", "Y", "Machine")
Write-Host $env:X
答案 0 :(得分:1)
据我所知,进程只加载一次环境变量(在开始时)。但您可以使用以下命令进行更改:
[Environment]::SetEnvironmentVariable("X", "Y", "Process") # for the current session
注意:您可能想要同时设置:
[Environment]::SetEnvironmentVariable("X", "Y", "Machine")
[Environment]::SetEnvironmentVariable("X", "Y", "Process")
答案 1 :(得分:0)
你必须这样做,因为这个过程在启动时获得环境,而不是在运行时(即你必须重新启动shell才能按照你的方式工作):
$ rvm use 2.1.3
$ rvm gemset empty
$ bundle install
还有一种方法可以使用WM_SETTINGCHANGE
将其广播到其他窗口对系统或环境变量进行更改 user,将lParam设置为字符串来广播此消息 “环境”。)
[Environment]::SetEnvironmentVariable("X", "Y", "Machine")
$Env:X = "Y"