0

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

function FOO { write-output "HEY" }

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

$var

如何从接收作业中获取输出?

4

1 回答 1

0

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

有一个额外的参数InitializationScript被称为在新实例中预先执行脚本块,您可以使用它来定义FOO像这样

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

顺便说一句:我猜您想执行该函数而不是获取函数对象本身,因此您可能希望将脚本块更改为此

-ScriptBlock { FOO }  
于 2016-08-25T04:47:51.217 回答