在Powershell中禁用位置参数绑定

问题描述 投票:6回答:1

我只希望通过别名获取参数:

script.ps1 -d site1 -c eac34b2d

不允许这样做:

script.ps1 site1 eac34b2d

Param(
    [parameter(Mandatory=$true)]
    [alias("d")]
    $DocRoot,
    [alias("c")]
    $Commit
)
windows powershell
1个回答
6
投票

基本上,您想禁用位置参数绑定。我写了一篇有关Powershell 3.0中的内置方法的文章:请使用[CmdletBinding(PositionalBinding=$false)]

http://blogs.microsoft.co.il/blogs/scriptfanatic/archive/2011/09/19/how-to-disable-positional-parameter-binding-in-powershell.aspx

此处提供v2的解决方法:

http://social.technet.microsoft.com/Forums/en-US/winserverpowershell/thread/abbc587f-cd7e-4c8d-879f-355339d9d6b7/

© www.soinside.com 2019 - 2024. All rights reserved.