我有一个看起来像这样的函数:
function global:Test-Multi {
Param([string]$Suite)
& perl -S "$Suite\runall.pl" -procs:$env:NUMBER_OF_PROCESSORS
}
我想允许用户为Test-Multi指定更多参数,并将它们直接传递给底层的旧perl脚本。
powershell是否提供了一种机制来为此目的允许其他可变行为?
答案 0 :(得分:11)
看到你的评论后,选项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
}
答案 1 :(得分:1)
我不确定您希望实现的目标,但传递给函数的参数可以在函数内部的productdescription
变量中访问。
答案 2 :(得分:1)
$args
不会正确传递参数。如果您希望参数保留为单独的参数,则应改用 @args
。