我有一個具有多種功能的模塊。如何使用模塊清單導出PowerShell模塊別名?
因爲我已經以非PowerShell的方式命名它們,所以我想重命名它們。但是,由於模塊已經在使用中,我想保留舊的函數名稱。
達到此目的的最佳方法似乎是使用別名。我已經有一個模塊清單的規定:
AliasesToExport = '*'
所以我創建了一個別名,該模塊與New-Alias -Name test -Value oldFunctionName
。
函數是像平常一樣導入的,但別名不存在。
我知道我可以使用模塊中的Export-ModuleMember。但是我有一個已經應該處理這個問題的清單。
因此,這裏有最後我的問題:
爲什麼別名不通過清單將導出?
函數本身是否有特殊的地方,我可以或必須定義一個別名?或者我必須在特別的地方使用New-Alias cmdlet嗎?
我想的有點像參數別名:
[parameter(Mandatory=$true, Position=0)][Alias("name","path")][String]$filename
但功能來代替。
請不要爲模塊聲明全局變量。 :) – JasonMArcher 2011-04-16 02:21:47
這基本上是答案,它應該從「是」開始。另外,你可能不需要scope參數。對globals的評論是一種干擾:在我的系統中,Import-Module默認爲全局,如果你設置爲local,New-Alias -Scope Global不會跳轉它如本答案中的旁註所示。另外,最初的問題是關於「Import-Module」後面當前範圍內的內容,所以不要污染全局,但要明白這與此無關。 – 2017-02-09 19:12:35