我通过“系统属性 -> 高级 -> 环境变量”设置了一个环境变量。我修改了变量的值。在 cmd 中,我看到了新值。在电源外壳,该值仍为旧值。尝试使用 [Environment]::SetEnvironmentVariable 设置它没有任何效果。
答案1
PowerShell 将缓存其信息。使用 Refresh 方法解决您的问题。我也在 SQL 领域发现了这一点。
答案2
您是否启动了 PowerShell 的新实例?
每个进程在启动时都会获得自己的环境块。通常,它会获得父进程环境块的副本,但 CreateProcess 也可以获取自定义环境块。
这意味着系统环境的更改不会影响正在运行的进程。因此您需要启动一个新的系统环境。