没有得到接收工作的输出

时间:2016-08-25 04:28:14

标签: powershell powershell-v3.0 start-job powershell-jobs

运行此脚本时变量$ var为空:

function FOO { write-output "HEY" }

$var = Start-Job -ScriptBlock { ${function:FOO} } | Wait-Job | Receive-Job

$var

如何从receive-job获取输出?

1 个答案:

答案 0 :(得分:0)

Start-Job在后​​台生成一个新的PowerShell实例,因此不了解您的初始实例中定义的函数FOO

还有一个额外的参数InitializationScript在新实例中预先执行您的脚本块,可用于定义FOO,如此

$var = Start-Job -InitializationScript { function FOO { write-output "HEY" } } -ScriptBlock ...  

BTW:我想你想要执行该函数而不是获取函数对象本身,所以你可能想要将你的脚本块更改为

-ScriptBlock { FOO }