如何重新定义传递给脚本的参数?

时间:2016-04-13 10:13:07

标签: powershell

我正在调用这样的脚本;

./pub.ps1 -b ab

在酒吧我有:

param(
   [string]$b
)

我想要的是有某种重新定义参数的案例或开关。

进入:

 -b abc as a parameter could be converted to: $bucket = "abcd123"
 -b ddd as a parameter could be converted to: $bucket = "sdafasdf"

换句话说,我可以使用某种形式的case或switch语句吗?

1 个答案:

答案 0 :(得分:4)

不确定我是否理解您的问题,但是将一个字符串映射到另一个字符串可以使用哈希表来完成:

$map = @{
  'abc' = 'abcd123'
  'ddd' = 'sdafasdf'
}

$bucket = $map[$b]

或使用switch声明:

$bucket = switch ($b) {
  'abc'   { 'abcd123' }
  'ddd'   { 'sdafasdf' }
  default { 'something else' }
}

switch方法更通用,因为您不仅可以使用默认值,还可以使用通配符或正则表达式匹配而不是普通字符串匹配。