1

给定以下脚本,如何将两个变量返回到主代码?

我已经尝试了该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:工作流被终止
终止活动。
在 RunScripts:9 字符:9
+
    + CategoryInfo : NotSpecified: (:) [Write-Error], WorkflowReturnException
    + FullyQualifiedErrorId:Microsoft.PowerShell.Workflow.WorkflowReturnException,Microsoft.PowerShell.Commands.WriteErrorCommand
    + PSComputerName:[本地主机]
4

1 回答 1

1

您不应该在并行块中有 return 语句。根据定义,并行块中的语句是并发运行的,因此您在填充值之前返回(“返回”是终止活动)。看看这里:https ://docs.microsoft.com/en-us/powershell/module/psworkflow/about/about_parallel

为了让它按照你想要的方式工作,你需要在并行块之前定义变量,然后在并行块内引用这些变量,最后返回变量。请注意,您需要使用 $WORKFLOW: 来引用并行块内的变量。

于 2017-11-27T07:48:08.753 回答