我正在尝试在母脚本中有一个控制器。它必须检查$Env:var的状态,并根据值做一些事情。问题是我无论如何都不能刷新它。它在开始执行时捕获该值,然后$Env:var保持不变,尽管$Env:var在Start-Job块之外发生了什么。
Start-Job -Name Controller -scriptblock {
while($true){
if ($Env:var -eq 100){
# lot of different stuff
}
Start-Sleep -Seconds 5
}
} 不幸的是,在我的环境中,我只能使用PS3.0。
发布于 2021-10-26 00:25:42
实际上,$Env环境变量是在PowerShell进程启动后设置的,并且它们不会在值更改时刷新。
如果环境变量在PowerShell之外发生更改,则必须直接从注册表中读取它们以获取当前值。基本位置为:
系统环境变量
Get-Item "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"用户环境变量
Get-Item HKCU:\Environmenthttps://stackoverflow.com/questions/69681126
复制相似问题