我只希望通过别名获取参数:
script.ps1 -d site1 -c eac34b2d
不允许这样做:
script.ps1 site1 eac34b2d
Param(
[parameter(Mandatory=$true)]
[alias("d")]
$DocRoot,
[alias("c")]
$Commit
)
基本上,您想禁用位置参数绑定。我写了一篇有关Powershell 3.0中的内置方法的文章:请使用[CmdletBinding(PositionalBinding=$false)]
。
此处提供v2的解决方法: