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