我有一个 PowerShell (2.0) 脚本调用另一个。我不仅想接收主输出,还想接收一个可以单独使用的附加对象,例如在消息中显示摘要行。
让我们将 Test2.ps1 作为被调用的脚本:
param([String]$SummaryLine)
$Issues = "Potentially long list of issues"
$SummaryLine = "37 issues found"
$Issues
并将 Test1.ps1 作为调用它的脚本:
$MainOutput = & ".\Test2.ps1" -SummaryLine $SummaryOutput
$MainOutput
$SummaryOutput
输出很简单:
Potentially long list of issues
尽管参数 $SummaryLine 由 Test2 填充,但 $SummaryOutput 在 Test1 中仍未定义。
在调用 Test2 之前定义 $SummaryOutput 没有帮助;它只是保留调用 Test2 之前分配的值。
我尝试将 $SummaryOutput 和 $SummaryLine 设置为 [ref] 变量(显然可以使用函数),但调用 Test2 后 $SummaryOutput.Value 属性为 $null。
在 PowerShell 中是否可以在参数中返回值?如果不是,有什么解决方法?在 Test2 中直接分配父级范围的变量?