1つの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で親スコープの変数を直接割り当てますか?