如何从注册表更新Windows PowerShell会话环境变量

前端之家收集整理的这篇文章主要介绍了如何从注册表更新Windows PowerShell会话环境变量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这可能是一个简单的问题,但我找不到正确的答案。如何在当前的Windows PowerShell会话中更新环境变量,而不关闭当前的Windows PowerShell会话?到现在为止,当我说,从控制面板>修改PATH env var系统,我必须关闭当前会话并打开一个新的会话,这样变量被刷新,或发出一个SetEnviromentVariable这是麻烦的….

我来自linux世界,所以我正在寻找类似source命令的东西…

环境在流程启动时被填充,这就是为什么您需要重新启动该过程。

您可以通过从注册表读取来更新环境。也许有如下脚本:

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
    }
}

(另)

原文链接:https://www.f2er.com/windows/372427.html

猜你在找的Windows相关文章