没有从接收工作中得到输出
not getting output from receive job
当我运行这个脚本时,变量 $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 ...
顺便说一句:我猜你想执行函数而不是获取函数对象本身,所以你可能想将脚本块更改为此
-ScriptBlock { FOO }
当我运行这个脚本时,变量 $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 ...
顺便说一句:我猜你想执行函数而不是获取函数对象本身,所以你可能想将脚本块更改为此
-ScriptBlock { FOO }