如何在 PowerShell 中创建命名空间或子模块?
How do you create namespaced or sub-modules in PowerShell?
我熟悉使用以下文件夹结构编写自定义 PowerShell 模块:
Modules
| +-- WebUtils
| | +-- WebUtils.psm1
| +-- BuildUtils
| | +-- BuildUtils.psm1
您可以通过 using module WebUtils
.
之类的操作导入 webutils 模块
我有一个正在进行的大型项目,它重复使用了很多相同的功能。现在我在一个模块中有大约一百个松散相关的函数。问题是我通常只需要使用其中的 10 - 20 个,具体取决于项目。我想以类似于这样的方式拆分模块:
Modules
| +-- Utils
| | +-- Web
| | | +-- Web.psm1
| | +-- Build
| | | +-- Build.psm1
| | +-- Utils.psm1
我可以称呼它们为 using module Utils.Web
或类似的东西。
我该怎么做?我还没有找到任何好的例子。这是组织事物的好方法吗?
大模块通常会拆分成单独的模块,这些模块执行一组相关的功能。这个 Azure 的一个很好的例子,或者 - 如下 - VMware PowerCLI
如果您 Import-Module VMware.PowerCLI
它将导入所有模块。但是你可以导入一个单独的模块,它只会导入那些 functions/commands 和任何模块依赖项,通过它们在 .psd1 中命名,例如,如果你只想要 VMware.VimAutomation.Core 它也拉入 VMware.VimAutomation.Cis.Core
所以不,不是一个模块的子文件夹,而是可以加载的其他相关模块。
我熟悉使用以下文件夹结构编写自定义 PowerShell 模块:
Modules
| +-- WebUtils
| | +-- WebUtils.psm1
| +-- BuildUtils
| | +-- BuildUtils.psm1
您可以通过 using module WebUtils
.
我有一个正在进行的大型项目,它重复使用了很多相同的功能。现在我在一个模块中有大约一百个松散相关的函数。问题是我通常只需要使用其中的 10 - 20 个,具体取决于项目。我想以类似于这样的方式拆分模块:
Modules
| +-- Utils
| | +-- Web
| | | +-- Web.psm1
| | +-- Build
| | | +-- Build.psm1
| | +-- Utils.psm1
我可以称呼它们为 using module Utils.Web
或类似的东西。
我该怎么做?我还没有找到任何好的例子。这是组织事物的好方法吗?
大模块通常会拆分成单独的模块,这些模块执行一组相关的功能。这个 Azure 的一个很好的例子,或者 - 如下 - VMware PowerCLI
如果您 Import-Module VMware.PowerCLI
它将导入所有模块。但是你可以导入一个单独的模块,它只会导入那些 functions/commands 和任何模块依赖项,通过它们在 .psd1 中命名,例如,如果你只想要 VMware.VimAutomation.Core 它也拉入 VMware.VimAutomation.Cis.Core
所以不,不是一个模块的子文件夹,而是可以加载的其他相关模块。