I have a function that looks something like this:
function global:Test-Multi {
Param([string]$Suite)
& perl -S "$Suite\runall.pl" -procs:$env:NUMBER_OF_PROCESSORS
}
I would like to allow the user to specify more parameters to Test-Multi and pass them directly to the underlying legacy perl script.
Does powershell provide a mechanism to allow additional variadic behavior for this purpose?
After seeing your comment, option 3 sounds like exactly what you want.
You have a few options:
Use $args
(credit to hjpotter92's answer)
Explicitly define your additional parameters, then parse them all in your function to add them to your perl call.
Use a single parameter with the ValueFromRemainingArguments
argument, e.g.
function global:Test-Multi {
Param(
[string]$Suite,
[parameter(ValueFromRemainingArguments = $true)]
[string[]]$Passthrough
)
& perl -S "$Suite\runall.pl" -procs:$env:NUMBER_OF_PROCESSORS @Passthrough
}