2013-01-10 45 views
2

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

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

回答

2

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

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

+0

我最终包装了所有这些文件cmdlet以使它们具有功能,以便我可以对它们进行点源。我试图让它不会修改这些文件来将它们收集到一个模块中,但它似乎不可能。 –

相关问题