如何在powershell中处理参数的多个选项?

时间:2013-01-10 22:00:25

标签: parsing powershell parameters arguments powershell-v2.0

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

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

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

2 个答案:

答案 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')]