我怎样才能让我的脚本允许任何参数?

How can I allow my script to allow any parameter?

我正在尝试弄清楚如何让我的 PowerShell 脚本允许任意参数,而无需指定我可能期望使用 param 的所有内容。

四处搜索我发现我可以使用 $args$myinvocation.mycommand.unboundarguments

我想做的是-

.\myscript.ps1 -prop1 "foo" -prop2 "bar"

这样做的目的是我计划使用 属性 来评估密钥对以更新我的配置文件。

这可能吗?

$Args 将捕获所有未明确定义为参数的输入。

有关详细信息,请参阅 about_Automatic_Variables

@Jon-Tirjan 的回答 $Args 的插图,
显示它如何跳过已声明的参数。

# myscript.ps1

param (
    [string] $param1,
    [string] $param2
)

Write-Host "param1 = $param1"
Write-Host "param2 = $param2"

$n = 0
foreach ($arg in $args) {
    write-host "$n $arg"
    $n += 1
}

.\myscript.ps1 -param2 'p2' -foo -bar bim -param1 'p1' -zip zap

param1 = p1
param2 = p2
0 -foo
1 -bar
2 bim
3 -zip
4 zap