1

我希望能够有多种形式的相同参数,如下所示:

param(
  [string]$p or $path = "C:\",
  [string]$f or $filter = "*.txt",
  [switch]$o or $overwrite
)

但我不知道该怎么做。大多数时候,您只能选择一个(例如,只有 $p 或只有 $path)。是否可以为同一个变量/参数使用多个名称?

4

2 回答 2

3

PowerShell 部分参数名称匹配可能是您所寻找的。

# test.ps1
param($path)
write-host $path

调用 .\test.ps1 中的任何一个.\test.ps1 -path "c:\windows".\test.ps1 -p "c:\windows"都将匹配并填充 $path 参数。

于 2013-01-10T22:28:36.170 回答
3

像这样:

param(
  [Alias('p')]
  [string]$path = "C:\",
  [Alias('f')]
  [string]$filter = "*.txt",
  [Alias('o')]
  [switch]$overwrite
)

请注意,您也可以有多个别名:[Alias('p','thepath')]

于 2013-01-10T22:33:51.703 回答