2016-03-02 106 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,您應該遵循以下內容:「您可以在別名中使用任何字母數字字符,但第一個字符不能是數字。」

也重新調用一個已定義的別名會引發錯誤。