只有在调用cmdlet函数时才能使用别名?
这是我的代码
Function Deploy-Citrix {
[cmdletBinding(SupportsShouldProcess=$True)]
Param(
[Parameter(Mandatory=$true)]
[Alias("component")]
[ValidateNotNullOrEmpty()]
[string]$componentparam,
[Parameter(Mandatory=$true)]
[Alias("ip")]
[ValidateNotNullOrEmpty()]
[string]$ipaddressparam,
)
在这种情况下,对于第二个参数,例如,我可以使用别名-ip
,但我也可以使用-ipaddressparam
。
Deploy-citrix -componentparam "toto" -ipaddressparam "172.22.0.100"
Deploy-citrix -component "toto" -ip "172.22.0.100"
我可以使用两者,但我想禁用第一个,我想只有别名。
我知道我可以重命名我的变量,但我不想在整个脚本中触摸它们。
我如何实现这一目标?
我正在使用Powershell V4.0
由于
答案 0 :(得分:3)
如果你的目标是禁止长格式,你别无选择,只能重命名参数并删除别名。
为了尽量减少对脚本的更改,您可以在函数内创建一个变量,例如
Function Deploy-Citrix {
[cmdletBinding(SupportsShouldProcess=$True)]
Param(
[Parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[string]$ip)
$ipaddressparam = $ip
...