我对 PowerShell 模块的工作方式感到困惑。
我从博主那里下载并复制了一个模块。我已将 .zip 解压缩并解压缩到 %USERPROFILE%\Documents\WindowsPowerShell\Modules\SomeModule
此文件夹中是模块使用的 .NET 程序集,但不包含已编译的 CmdLets。相反,命令是 .psm1 文件中的函数,而 .psd1 文件描述清单。
如果我打开 PowerShell,这些功能可用并且可以工作,但我想添加我自己的功能,所以我添加了它,但是我看不到它。我重新启动了所有 PowerShell 实例,删除了模块并再次导入。
作为测试,我重命名了一个现有的工作函数。有趣的是,在 remove 和 import 之后,该函数消失了,而不是采用了它的新名称。如果我将其重命名(仅更改一个字符)并删除/导入,则它会再次出现。
我help blahblah
用来列出一组中的所有命令,因为它们都具有相同的前缀。清单导出所有 (*) 函数。显然我不明白这些类型的脚本模块是如何工作的,即使在我运行 Remove-Module 之后,这些功能都列出来了!我之前在 C# 中编写了一个编译模块,并且按预期工作。
这是怎么回事?为什么重命名函数会导致它消失?谢谢。