接收作业没有输出



当我运行这个脚本时,变量$var是空的:

function FOO { write-output "HEY" }
$var = Start-Job -ScriptBlock { ${function:FOO} } | Wait-Job | Receive-Job
$var

如何从receive-job获得输出?

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

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

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

BTW:我猜你想执行函数而不是获得函数对象本身,所以你可能想改变你的脚本块到这个

-ScriptBlock { FOO }  

相关内容

  • 没有找到相关文章

最新更新