是否有一种方法可以更新已发送到另一个PowerShell实例的参数值?
简介
我正在编写由appx组成的E2E监控。 8个检查。 每个检查都作为一个实例运行,示例得以简化。
$psInstance = [System.Management.Automation.PowerShell]::Create()
...
while ($true) {
$attemptCounter++
[void]$psInstance.AddScript($myE2ECheckScript)
[void]$psInstance.AddParameter('currentAttempt', $attemptCounter)
$psInstances.$e2eCheckName.ASyncHandler = $psInstance.BeginInvoke()
...
}
如果此e2eCheck失败(例如,页面无法正确加载),则在发送警报之前,我停止()psInstance,稍等一下,然后重试。
当然,另一次尝试应该增加$attemptCounter
,我将它作为参数传递给实例。
当我尝试通过AddParameter()
传递它时,我收到此错误消息(很有意义):
由于指定了参数“ attemptCounter”,因此无法绑定参数 不止一次。提供多个值给可以 接受多个值,请使用数组语法。例如,“-参数 value1,value2,value3“
因此,这与传递参数无关(第一次运行正常),而与第二次更新有关。
如果可能,我想避免
通过文件,环境var传递参数
AddArgument,它确实有效,但是它总是创建新的
并行实例中的附加参数,包括先前的参数
(可以通过$PSBoundParameters
进行读取)。不太优雅(1.000x尝试
= 1.000x参数(变量))
我想问你们,是否有人已经解决了这个问题。有一个优雅的解决方案吗?