小编Bjø*_*sen的帖子

设置用户环境变量很慢

我正在使用 GitHub for Windows 应用程序。最近我注意到从 GitHub 应用程序中启动 PowerShell 控制台需要很长时间。经过一番挖掘,我发现慢命令正在设置一个环境变量。更具体地说,GitUtils.ps1 中的这些行(GitHub 使用的 PoshGit 的一部分):

function setenv($key, $value) {
    [void][Environment]::SetEnvironmentVariable($key, $value, [EnvironmentVariableTarget]::Process)
    [void][Environment]::SetEnvironmentVariable($key, $value, [EnvironmentVariableTarget]::User)
}
Run Code Online (Sandbox Code Playgroud)

设置 Process-wide 变量是即时的,但 User 变量需要很长时间。使用以下脚本:

$sw = [Diagnostics.Stopwatch]::StartNew()
[Environment]::SetEnvironmentVariable("Horses", "are neat", [EnvironmentVariableTarget]::User)
$sw.Stop()
$sw.Elapsed
Run Code Online (Sandbox Code Playgroud)

我可以看到这个操作需要超过 80 秒。使用默认的高级设置窗口设置用户环境变量很快。使用快速环境编辑器,设置一个变量通常很快,但有时需要 5-10 秒,但从来没有这么长的时间。

有人对可能导致这种情况的原因有任何建议吗?

powershell environment-variables windows-8

8
推荐指数
1
解决办法
3489
查看次数