运行此脚本时变量$ var为空:
function FOO { write-output "HEY" }
$var = Start-Job -ScriptBlock { ${function:FOO} } | Wait-Job | Receive-Job
$var
如何从receive-job获取输出?
答案 0 :(得分:0)
Start-Job
在后台生成一个新的PowerShell实例,因此不了解您的初始实例中定义的函数FOO
还有一个额外的参数InitializationScript
在新实例中预先执行您的脚本块,可用于定义FOO
,如此
$var = Start-Job -InitializationScript { function FOO { write-output "HEY" } } -ScriptBlock ...
BTW:我想你想要执行该函数而不是获取函数对象本身,所以你可能想要将你的脚本块更改为
-ScriptBlock { FOO }