$args
パイプライン パラメーター を使用して配列を使用しようとしています。
この関数は、パイプライン化された最初のパラメーターに続いて、任意の数のパラメーター (param0 など) を想定しています。
function rpt-params {
param (
[Parameter(ValueFromPipeline=$true,Position=0,Mandatory=$true)][CrystalDecisions.CrystalReports.Engine.ReportDocument]$reportDocument
)
try {
write-host "count: " $args.count
#TODO process args
}
catch [Exception] {
write-host $_.Exception
}
finally {
return $reportDocument
}
}
関数を呼び出そうとすると、「rpt-params : パラメーター名 'param0' に一致するパラメーターが見つかりません。」というエラーが生成されます。
...
# syntax 0
rpt-params $rpt -param0 "mb-1" -param1 "me-1"
...
...
# syntax 1; explicitly naming the first parameter
rpt-params -reportDocument $rpt -param0 "mb-1" -param1 "me-1"
...
私の構文は問題ですか、それともパイプライン化されたパラメーターの使用に関連していますか?