gpt4 book ai didi

PowerShell 模块 - 每个 cmdlet 都有单独的文件

转载 作者:行者123 更新时间:2023-12-03 06:55:59 26 4
gpt4 key购买 nike

我已经为此苦苦挣扎了一段时间。我打算为我的项目创建新的 PowerShell 模块。目的是将几个自定义 cmdlet 打包到独立单元中,我可以通过我们的 Nexus 存储库(或通过其他任何东西)将其部署到其他计算机。

问题:无论我在哪里,我都会看到教程将所有 PowerShell 函数/cmdlet 打包到单个 *.psm1 文件中。文件存储在同名目录中,该目录实际上代表模块本身。

问题:有没有办法将每个 cmdlet/函数分离成独立文件?如果我有一个由多个 cmdlet 组成的模块,则将它们全部放入单个 *.psm1 文件中并不是很方便。

谢谢马修

最佳答案

您还可以使用 list 文件。 “模块 list 是一个包含哈希表的 .psd1 文件。哈希表中的键和值执行以下操作:

  • 描述模块的内容和属性。
  • 定义先决条件
  • 确定如何处理组件。

模块不需要 list 。模块可以引用脚本文件 (.ps1)、脚本模块文件 (.psm1)、 list 文件 (.psd1)、格式和类型文件 (.ps1xml)、cmdlet 和提供程序程序集 (.dll)、资源文件、帮助文件、本地化文件,或作为模块的一部分捆绑的任何其他类型的文件或资源。对于国际化脚本,模块文件夹还包含一组消息目录文件。如果将 list 文件添加到模块文件夹中,则可以通过引用 list 将多个文件作为一个单元进行引用。”( Source )

因此您可以直接从 psd1 文件使用 ps1 文件而不是 psm1 文件:

# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess 
NestedModules = 'Get-WUList.ps1','Add-WUOfflineSync.ps1'

# Functions to export from this module
FunctionsToExport = 'Get-WUList','Add-WUOfflineSync'

关于PowerShell 模块 - 每个 cmdlet 都有单独的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29642768/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com