鉴于以下脚本,如何将两个变量返回到主代码?
我尝试了return
命令,但显示错误。请在下面找到代码和错误消息。
代码:
workflow Test-MultiReturnVals
{
parallel
{
$a = @(Test-Connection 8.8.8.8 -count 3)
$b = @(Test-Connection 4.2.2.1 -count 3)
return $a, $b
}
}
$c, $d = Test-MultiReturnVals
$c
错误:
Microsoft.PowerShell.Utility\Write-Error : The workflow was terminated by a Terminate activity. At RunScripts:9 char:9 + + CategoryInfo : NotSpecified: (:) [Write-Error], WorkflowReturnException + FullyQualifiedErrorId : Microsoft.PowerShell.Workflow.WorkflowReturnException,Microsoft.PowerShell.Commands.WriteErrorCommand + PSComputerName : [localhost]
答案 0 :(得分:1)
你不应该在并行块中有return语句。根据定义,并行块中的语句是同时运行的,因此在填充值之前返回(" return"是终止活动)。看看这里:https://docs.microsoft.com/en-us/powershell/module/psworkflow/about/about_parallel
要使其按您希望的方式工作,您需要在并行块之前定义变量,然后在并行块内引用这些变量,最后在最后返回变量。请注意,您需要使用$ WORKFLOW:来引用并行块内的变量。