我希望能够有多种形式的相同参数,如下所示:
param(
[string]$p or $path = "C:\",
[string]$f or $filter = "*.txt",
[switch]$o or $overwrite
)
但我不知道该怎么做。大多数时候,您只能选择一个(例如,只有 $p 或只有 $path)。是否可以为同一个变量/参数使用多个名称?
我希望能够有多种形式的相同参数,如下所示:
param(
[string]$p or $path = "C:\",
[string]$f or $filter = "*.txt",
[switch]$o or $overwrite
)
但我不知道该怎么做。大多数时候,您只能选择一个(例如,只有 $p 或只有 $path)。是否可以为同一个变量/参数使用多个名称?
PowerShell 部分参数名称匹配可能是您所寻找的。
# test.ps1
param($path)
write-host $path
调用 .\test.ps1 中的任何一个.\test.ps1 -path "c:\windows"
或.\test.ps1 -p "c:\windows"
都将匹配并填充 $path 参数。
像这样:
param(
[Alias('p')]
[string]$path = "C:\",
[Alias('f')]
[string]$filter = "*.txt",
[Alias('o')]
[switch]$overwrite
)
请注意,您也可以有多个别名:[Alias('p','thepath')]