2016-03-02 61 views
0

没有限制我写了一个简单的SetDifference功能,通过使用Compare-Object功能:PowerShell的别名 - 上名字

Function SetDifference { 
    param(
    [Parameter(Mandatory=$true)]$ReferenceObject, 
    [Parameter(Mandatory=$true)]$DifferenceObject 
    ) 

    Compare-Object $ReferenceObject $DifferenceObject | 
    Where-Object { $_.SideIndicator -eq '<=' } | 
    ForEach-Object { $_.InputObject } 
} 

我注意到,任何别名可以不PowerShell的抱怨中使用:

Set-Alias '\' 'SetDifference' 
Set-Alias '.' 'SetDifference' 
Set-Alias '+' 'SetDifference' 

不应该限制别名的名称 - 阻止您使用已经是PowerShell语法一部分的符号吗?

+1

这种限制的意义何在? – PetSerAl

+0

阻止您使用属于PowerShell语言的符号 –

+1

为什么您需要某人来阻止您。只是不要那样做。别名无法重新定义符号的含义,它们只影响命令名称解析。 – PetSerAl

回答

1

使用“+”时应该会出现错误。

请参阅here,您应该遵循以下内容:“您可以在别名中使用任何字母数字字符,但第一个字符不能是数字。”

也重新调用一个已定义的别名会引发错误。