如何在PowerShell功能中传递参数?
我有一个功能,看起来是这样的:如何在PowerShell功能中传递参数?
function global:Test-Multi {
Param([string]$Suite)
& perl -S "$Suite\runall.pl" -procs:$env:NUMBER_OF_PROCESSORS
}
我想允许用户指定多个参数测试,多和直接传递到底层遗留Perl脚本。
PowerShell是否提供了一种机制来允许为此目的使用额外的可变参数?
看到您的评论后,选项3听起来就像你想要的。
您有几种选择:
使用
$args
(信贷hjpotter92's answer)明确地定义你的额外的参数,然后解析他们都在你的函数将其添加到您的perl调用。
-
对
ValueFromRemainingArguments
argument使用单个参数,例如,function global:Test-Multi { Param( [string]$Suite, [parameter(ValueFromRemainingArguments = $true)] [string[]]$Passthrough ) & perl -S "$Suite\runall.pl" -procs:$env:NUMBER_OF_PROCESSORS @Passthrough }
我不确定你想达到什么,但传递给函数的参数可以在函数内可用的$args
变量中访问。
不过的$ args将包含 '-Suite' 和它的设置为好。我只想转发我的函数无法处理的参数。 –
@BillyONeal你可以过滤'$ args'数组并删除'-Suite'参数。 – hjpotter92
当然,我可以想办法做到这一点,但如果PS已经有一种正式的方式来声明我想要使用它。 –
我不认为你的“ValueFromRemainingArguments”链接去正确的地方.... –
@BillyONeal谢谢,更新。这是一个long-ish文件,因此建议''ValueFromRemainingArguments'的CTRL + F'。 – briantist
添加代码示例。谢谢! –