运行此脚本时,变量 $var 为空:
function FOO { write-output "HEY" }
$var = Start-Job -ScriptBlock { ${function:FOO} } | Wait-Job | Receive-Job
$var
如何从接收作业中获取输出?
运行此脚本时,变量 $var 为空:
function FOO { write-output "HEY" }
$var = Start-Job -ScriptBlock { ${function:FOO} } | Wait-Job | Receive-Job
$var
如何从接收作业中获取输出?
Start-Job
在后台生成一个新的 PowerShell 实例,因此不知道FOO
在初始实例中定义 的函数
有一个额外的参数InitializationScript
被称为在新实例中预先执行脚本块,您可以使用它来定义FOO
像这样
$var = Start-Job -InitializationScript { function FOO { write-output "HEY" } } -ScriptBlock ...
顺便说一句:我猜您想执行该函数而不是获取函数对象本身,因此您可能希望将脚本块更改为此
-ScriptBlock { FOO }