我认为这是不可能的,但是在开发软件时获取最新的环境变量是一个很大的痛苦。
举个例子,我有一个 psake 脚本,它更新我的应用程序所需的环境变量:
[System.Environment]::SetEnvironmentVariable($myConfig, $myValue, 'Process')
[System.Environment]::SetEnvironmentVariable($myConfig, $myValue, [System.EnvironmentVariableTarget]::Machine)
此环境变量可能每天/每周发生变化,因为它基于启动的 Azure 基础设施。
在 Visual Studio 中,我的应用程序依赖此环境变量进行配置,并且在我退出 VS 并再次重新打开它之前,它不会成功运行(因此“机器”设置的环境变量现在为最新)。
是否可以采取任何措施来防止每次 Windows 上的环境变量发生更改时我们都必须关闭并重新打开所有内容?
最佳答案
可以从注册表中读取当前的环境变量,
Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment' -Name myConfig
作为解决方法,您可以从注册表中读取值并再次设置环境变量以更新 session ,而无需重新打开。
$myConfig = "myConfig"
$reg = Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment' -Name myConfig
$myValue = $reg.myConfig
[System.Environment]::SetEnvironmentVariable($myConfig, $myValue, 'Process')
[System.Environment]::SetEnvironmentVariable($myConfig, $myValue, [System.EnvironmentVariableTarget]::Machine)
关于azure - Powershell - 设置环境变量而无需关闭应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64136200/