首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法刷新Start-Job块中的$env:variable

无法刷新Start-Job块中的$env:variable
EN

Stack Overflow用户
提问于 2021-10-22 17:44:47
回答 1查看 30关注 0票数 0

我正在尝试在母脚本中有一个控制器。它必须检查$Env:var的状态,并根据值做一些事情。问题是我无论如何都不能刷新它。它在开始执行时捕获该值,然后$Env:var保持不变,尽管$Env:var在Start-Job块之外发生了什么。

代码语言:javascript
复制
Start-Job -Name Controller -scriptblock {     
    
            while($true){ 
    
                    if ($Env:var -eq 100){
    
                            # lot of different stuff
                    }
        
                    Start-Sleep -Seconds 5
            }
} 

不幸的是,在我的环境中,我只能使用PS3.0。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-26 00:25:42

实际上,$Env环境变量是在PowerShell进程启动后设置的,并且它们不会在值更改时刷新。

如果环境变量在PowerShell之外发生更改,则必须直接从注册表中读取它们以获取当前值。基本位置为:

系统环境变量

代码语言:javascript
复制
Get-Item "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"

用户环境变量

代码语言:javascript
复制
Get-Item HKCU:\Environment
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69681126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档