【问题标题】:PowerShell .ps1 file cmdlets in a module模块中的 PowerShell .ps1 文件 cmdlet
【发布时间】:2013-01-10 23:33:10
【问题描述】:

现在我有一组相互关联的.ps1 PowerShell 脚本 cmdlet(它们可以接受参数),但每个都相当复杂。我想将它们组织成一个模块,最好将它们保存在单独的文件中。

最好的方法是什么?我可以将它们保存在单独的 .ps1 文件中,并使用模块清单来说明它们是模块的一部分吗?我是否需要将文件点源到.psm1file 以保持文件分离?还是将它们分成单独的文件是不明智的?

【问题讨论】:

    标签: powershell powershell-module


    【解决方案1】:

    最终,您将需要至少有一个 .PSM1 文件,其中包含要从模块中导出的变量和函数定义,或 .PS1 文件中的这些定义中的点源。默认情况下,在导出所有函数时不会导出变量。如果您想修改该行为,请在 PSM1 文件末尾使用Export-ModuleMember -Variable MyExportedVariable -Function *-*

    如果您的 PS1 文件中的大部分代码是内部实现细节,则保留在 PS1 文件中应该没问题。请记住,PSM1 会导出模块的“公共”界面。

    【讨论】:

    • 我最终包装了所有这些文件 cmdlet 以使它们发挥作用,这样我就可以点源它们。我试图做到这一点,这样我就不必修改这些文件来将它们收集到一个模块中,但这似乎是不可能的。
    猜你喜欢
    • 1970-01-01
    • 2023-04-04
    • 2015-06-20
    • 1970-01-01
    • 2013-09-11
    • 2014-10-25
    • 1970-01-01
    • 2021-10-20
    • 1970-01-01
    相关资源
    最近更新 更多