我有一个具有多种功能的模块。如何使用模块清单导出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