如何在Start-Job中修改变量?这段代码输出0,似乎是因为变量是通过值传递的:
$vara = "0"
$j = start-job -ScriptBlock {
$args[0] = "1"
} -ArgumentList $vara
wait-job $j > $null
receive-job $j
Write-Host $vara ## => "0"如何通过引用传递参数(因此,输出1)?
发布于 2018-10-24 22:02:05
当修改作业中的任何内容时,您完全超出了范围。任何东西都不会在你当前的会话中神奇地填充。
你可以这样做:
$vara = "0"
$j = start-job -ScriptBlock {
"1"
} -ArgumentList $vara
wait-job $j > $null
$vara = receive-job $j
Write-Host $vara如果你需要填充很多参数,你可以这样做:
$vara = "0"
$j = start-job -ScriptBlock {
[pscustomobject]@{
vara1 = "1"
vara2 = "0"
}
} -ArgumentList $vara
wait-job $j > $null
$vara = receive-job $j
Write-Host $vara.vara1https://stackoverflow.com/questions/52970853
复制相似问题