我正在尝试使用$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"
...
我的语法是问题还是与使用流水线参数有关?