You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell模块清单文件中配置以导出多文件中的Cmdlet?

将多个PowerShell脚本整合为模块的清单文件配置

核心必填配置项

要让导入模块后所有自定义函数在会话中可用,你的.psd1清单文件需要配置以下关键项:

1. 基础模块标识

  • ModuleVersion:模块版本号,格式如'1.0.0'
  • GUID:全局唯一标识符,可通过New-Guid命令生成,用于区分不同模块
  • Author:模块作者信息
  • Description:模块功能描述,比如'提供文件编码与解码功能'

2. 函数加载与导出配置

这两项是确保函数可用的核心:

  • ScriptsToProcess:指定要在模块导入时执行的脚本文件列表,直接填写你的所有.ps1脚本文件名,示例:
    ScriptsToProcess = @('Encode-File.ps1', 'Decode-File.ps1')
    
    导入模块时会运行这些脚本,从而定义其中的函数。
  • FunctionsToExport:显式列出要对外暴露的函数名称,示例:
    FunctionsToExport = @('Encode-File', 'Decode-File')
    
    建议显式列出,避免导出内部测试函数;若要导出所有函数,可使用'*',但生产模块不推荐这种写法。

3. 可选但推荐的配置

  • RootModule:若没有单独的入口脚本,可设为$null
  • PowerShellVersion:指定模块支持的PowerShell版本,比如'5.1'或'7.2'
  • CmdletsToExport:若模块包含编译型Cmdlet(而非脚本函数),在此列出;仅脚本函数的话设为@()即可

完整示例清单

@{
    RootModule           = $null
    ModuleVersion        = '1.0.0'
    GUID                 = 'a1b2c3d4-5678-90ef-ghij-klmnopqrstuv' # 替换为自己生成的GUID
    Author               = '你的名称'
    Description          = '实现文件编码与解码功能的PowerShell模块'
    PowerShellVersion    = '5.1'
    ScriptsToProcess     = @('Encode-File.ps1', 'Decode-File.ps1')
    FunctionsToExport    = @('Encode-File', 'Decode-File')
    CmdletsToExport      = @()
    VariablesToExport    = @()
    AliasesToExport      = @()
}

注意事项

  • 确保所有.ps1脚本都已改为函数形式(比如function Encode-File { # 函数逻辑 }),而非直接执行的代码
  • 清单文件名建议与模块文件夹同名,比如模块文件夹叫FileCodec,清单文件就命名为FileCodec.psd1
  • 导入模块时执行Import-Module .\FileCodec.psd1(根据实际路径调整)即可

内容的提问来源于stack exchange,提问作者AxD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 02:12:07