无法在脚本模块中创建 PowerShell 别名

2024-01-04

重现步骤:

使用以下函数和别名在 \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(使用前将#替换为@)

无法在脚本模块中创建 PowerShell 别名 的相关文章

随机推荐

  • javax.ws.rs.ProcessingException:找不到内容类型 application/json 的 writer

    我是 REST Web 服务的新手 我正在尝试 post 和 consumes 注释 如下所示 POST Path post Consumes application json public Response createProductIn
  • Google App Engine 和 jQuery Ajax 导致管道损坏错误

    我有一个非常标准的案例 我尝试通过 jQuery 的 Ajax 提交一些 JSON 数据 我的 JavaScript 代码如下所示
  • Fragment onResume() 和 backStack 问题

    当我从另一个片段回来时 我陷入了恢复片段的困境 设想 我有一个Fragment A 现在我正在打开多个片段Fragment A say A1 A2 A3 使用框架布局 现在我正在启动一个新的片段说Fragment B从 A1 A2 A3 之
  • jQuery 显示 setTimeout 计时器

    我正在尝试构建一个简单的倒计时应用程序 是否可以在 setTimeout 上显示计时器值 或者我必须使用 for 循环 Thanks with setTimeout var n 100 setTimeout countDown 1000 f
  • SimpleCursorAdapter 和 CursorAdapter

    我想知道 CursorAdapter 和 SimpleCursorAdapter 之间有什么区别 人们会根据什么标准选择其中之一 您与他们合作的经历 谢谢 我认为主要问题还没有得到解答 SimpleCursorAdapter 的存在是为了那
  • Java 中的尾部调用优化

    从 Java 8 开始 Java 不提供尾部调用优化 TCO 经过研究 我了解到这是 在 JDK 类中 有许多安全敏感方法 它们依赖于计算 JDK 库代码和调用代码之间的堆栈帧来确定谁在调用它们 然而 基于 JVM 的 Scala 支持尾部
  • 文件丢失 在文件系统中,捕获表单提交

    我有一个通过 jQuery 提交的表单ajaxSubmit 功能 此表单包含一个文件控件 并且已提出一个可能的故障点 如果在提交表单之前所选文件被重命名 删除或以其他方式变得不可访问 则该表单可能会或可能不会根据浏览器提交 虽然提交失败是预
  • 使用 PyDict_SetItemString 进行引用计数

    我想知道当将新值设置到 PyDict 在 C 扩展内 内的现有字段中时 内存管理 引用计数如何工作 例如 假设按以下方式创建和填充字典 myPyDict PyDict New tempPyObj PyString FromString Or
  • 读取科学计数法 scanf

    我正在开发一个程序 它应该只有一个 scanf 函数 并且应该能够接受科学计数法和实数的输入 任何帮助将不胜感激 根据scanf文档 http en cppreference com w c io fscanf f匹配浮点数 数字的格式与预
  • 通过初始化列表实例化抽象类[重复]

    这个问题在这里已经有答案了 我想了解为什么编译器允许编译以下代码 include
  • Numpy 和 matplotlib 垃圾收集

    我有一个 python 脚本 它对不同的参数进行许多模拟 Q K 绘制结果并将其存储到磁盘 每组参数 Q K 生成 200x200x80 数据点的 3D 体积网格 这需要约 100 MB 的数据 然后逐层绘制该体积网格的一部分 生成约 60
  • 将参数绑定到信号/槽

    我基本上有多个事件信号 我想将它们连接到同一个插槽 我想知道的是如何将基于字符串的参数传递到同一插槽 以便该插槽知道该信号来自哪个信号 一种替代方法是制作与信号一样多的槽 然后以 1 1 的方式连接它们 但考虑到所有处理的代码非常相似 这种
  • 在 R 中生成滞后时间序列横截面变量

    我是 R 新用户 我有一个时间序列横截面数据集 尽管我已经找到了滞后时间序列数据的方法R 我还没有找到创建滞后时间序列横截面变量的方法 以便我可以在分析中使用它们 以下是您可以如何使用lag 功能与zoo 和面板系列数据 gt librar
  • 远程主机标识已更改?

    NPM 表示可能存在安全错误 meteor npm install mui system npm ERR Error while executing npm ERR usr local bin git ls remote h t ssh e
  • 开始创建自定义视图过渡

    我正在寻找有关创建自定义视图转换的教程 特别是 涉及除受影响的 UIView 之外的元素的转换 例如在转换发生时播放动画或修改正在转换的 UIView 的屏幕截图 我并不是指实现一组基本的过渡 幻灯片 淡入淡出等 苹果网站上有很多相关示例
  • 如何以相同的方式对两个数组进行排序?

    我希望输出为 3 0 2 36 1 1 键和以相同方式排序的值 three one two fun main var l 0 var letters arrayOf one two three var digits arrayOf 2 36
  • hadoop 空指针异常

    我正在尝试设置一个hadoop的多节点集群迈克尔 诺尔的方式 http www michael noll com tutorials running hadoop on ubuntu linux multi node cluster 使用两
  • Dockerfile 中 RUN 和 CMD 的区别

    我很困惑什么时候应该使用CMD vs RUN 例如 执行 bash shell 命令 即ls la 我总是会使用CMD或者有什么情况我会使用RUN 试图了解这两个类似的最佳实践Dockerfile指令 RUN https docs dock
  • 在 IIS 6 中的应用程序级别设置 NTAuthenticationProviders

    我在 IIS 中有以下结构 Internet Information Services local computer Web Sites Default Web Site MyApplication MyApplication是 IIS 中
  • 无法在脚本模块中创建 PowerShell 别名

    重现步骤 使用以下函数和别名在 WindowsPowerShell Modules TestAlias TestAlias psm1 中创建 TestAlias 模块 function foo write output foo New Al