重现步骤:
使用以下函数和别名在\ WindowsPowerShell\Modules\TestAlias\TestAlias.psm1中创建TestAlias模块:
function foo
{ write-output 'foo' }
New-Alias -name bar -value foo
Run Code Online (Sandbox Code Playgroud)
从PowerShell会话:
import-module TestAlias
bar
Run Code Online (Sandbox Code Playgroud)
术语"bar"不被识别为cmdlet,函数,脚本文件或可操作程序的名称......
Sta*_*ing 11
您可以使用
Export-ModuleMember -Function * -Alias *
Run Code Online (Sandbox Code Playgroud)
导出所有函数和别名.
默认情况下,Windows PowerShell模块仅导出命令(函数或cmdletS),而不导出变量或别名.
我将详细介绍为什么会这样.
简短的回答是别名虽然在编写一个衬垫时很方便,但却是理解脚本或模块的障碍.它们是一个很好的cmdlet的结块,但暴露的核心是良好的cmdlet.别名使得阅读脚本的用户更难以弄清楚你想要做什么(Set-Content比sc更容易理解).变量可能更糟糕,因为它们可以很容易地设置为意外值,因为你的模块用户没有什么可以帮助他们知道它们在那里.由于命令很容易被发现(Get-Command -Module FOO)并且更易于探索(使用Get-Help),因此模块将导出的默认命令仅为命令.与PowerShell中的大多数其他内容一样,如果您选择,可以覆盖它,但默认情况下,命令是从模块导出的唯一内容.
希望这可以帮助
小智 9
使用Export-ModuleMember在PSM1文件导出的别名
Export-ModuleMember -function foo -Alias bar
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3653 次 |
| 最近记录: |