我很难从作业中获得任何输出 - 以下代码有什么问题?
$test = {
DIR
}
$mjob = Start-Job -ScriptBlock {$test}
while (Get-Job -State Running){}
Receive-Job -Job $mjob -OutVariable $otest
Write-Host($otest)
我很难从作业中获得任何输出 - 以下代码有什么问题?
$test = {
DIR
}
$mjob = Start-Job -ScriptBlock {$test}
while (Get-Job -State Running){}
Receive-Job -Job $mjob -OutVariable $otest
Write-Host($otest)
当您使用时-OutVariable
仅提供变量的名称,例如:
... -OutVariable otest
除非$otest
碰巧包含要将输出保存到的变量的名称。
其他一些建议。 $test
代表一个脚本块,所以你不需要把{}
它放在周围。而不是等待使用while循环,只需使用Wait-Job
例如:
$test = { get-childitem }
$job = Start-Job $test
Wait-Job $job
Receive-Job $job -OutVariable otest
$otest
您可以使用管道等待作业完成,然后接收其结果。当您将脚本块传递给 ScriptBlock 参数时,请确保删除大括号,否则您将创建一个嵌套的脚本块:
$test = { DIR }
Start-Job -ScriptBlock $test | Wait-Job | Receive-Job