重现步骤:
使用以下函数和别名在 \WindowsPowerShell\Modules\TestAlias\TestAlias.psm1 中创建 TestAlias 模块:
function foo
{ write-output 'foo' }
New-Alias -name bar -value foo
从 PowerShell 会话:
import-module TestAlias
bar
术语“bar”不被识别为 cmdlet、函数、脚本文件或可操作程序的名称...
您可以使用
Export-ModuleMember -Function * -Alias *
导出所有函数和别名。
默认情况下,Windows PowerShell 模块仅导出命令(函数或 cmdlet),而不导出变量或别名。
我将更详细地解释其中的原因。
简而言之,别名虽然在编写衬垫时很方便,但却是理解脚本或模块的障碍。它们为良好的 cmdlet 锦上添花,但要公开的核心内容是良好的 cmdlet。别名使阅读脚本的用户更难弄清楚您想要做什么(Set-Content 比 sc 更容易理解)。暴露变量的情况可能更糟,因为它们很容易被设置为意外的值,并且几乎无法帮助模块的用户确定它们的存在。由于命令很容易发现(Get-Command -Module FOO)并且更容易探索(使用 Get-Help),因此模块默认导出的只是命令。与 PowerShell 中的大多数其他内容一样,您可以选择覆盖它,但默认情况下,命令是从模块导出的唯一内容。
希望这可以帮助
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)