现在我有一组.ps1
PowerShell脚本cmdlet(它们可以带参数)彼此相关,但每个都相当复杂。我想将它们组织成一个模块,最好是将它们保存在单独的文件中。
最好的方法是什么?我可以将它们保存在单独的.ps1文件中,并使用模块清单说它们是模块的一部分吗?我是否需要将文件点源到.psm1
文件以保持文件分离?或者将它们分成单独的文件是不明智的吗?
答案 0 :(得分:3)
最终,您需要至少有一个.PSM1文件,该文件包含要从模块中导出的变量和函数定义,或者来自.PS1文件的那些定义中的点源。默认情况下,导出所有函数时不会导出变量。如果要修改该行为,请在PSM1文件末尾使用Export-ModuleMember -Variable MyExportedVariable -Function *-*
。
如果PS1文件中的大部分代码都是内部实现细节,那么保留在PS1文件中应该没问题。请记住,PSM1会导出模块的“公共”界面。