这可能是一个简单的问题,但我找不到正确的答案。如何在当前的Windows PowerShell会话中更新环境变量,而不关闭当前的Windows PowerShell会话?到现在为止,当我说,从控制面板>修改PATH env var系统,我必须关闭当前会话并打开一个新的会话,这样变量被刷新,或发出一个SetEnviromentVariable这是麻烦的….
我来自linux世界,所以我正在寻找类似source命令的东西…
环境在流程启动时被填充,这就是为什么您需要重新启动该过程。
原文链接:https://www.f2er.com/windows/372427.html您可以通过从注册表读取来更新环境。也许有如下脚本:
function Update-Environment { $locations = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment','HKCU:\Environment' $locations | ForEach-Object { $k = Get-Item $_ $k.GetValueNames() | ForEach-Object { $name = $_ $value = $k.GetValue($_) if ($userLocation -and $name -ieq 'PATH') { Env:\Path += ";$value" } else { Set-Item -Path Env:\$name -Value $value } } $userLocation = $true } }
(另)