如何管理多文件Powershell模块中的脚本之间的依赖关系?

前端之家收集整理的这篇文章主要介绍了如何管理多文件Powershell模块中的脚本之间的依赖关系?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个很长的Power Shell代码,我在一个长期项目的过程中写的;这些脚本执行各种各样的功能,并且大多数功能在某种程度上依赖于项目范围内的其他功能.现在,这项工作由几个文件组成,每个文件包含许多功能.最初,为了使用这些脚本,所有脚本文件都是偶然的点源到环境中.

但是,我最近了解到Powershell 2.0引入了模块,我想以这种方式将这些脚本一起部署.由于模块的内容全部加载在一起,我想拆分我的文件,以便每个脚本都有自己的文件,以帮助控制源.但是,我现在对脚本之间的联系还不清楚.

我做了一些测试,似乎可以将每个函数的Export-ModuleMember命令移动到各个.ps1文件;这似乎更像是在C#中声明自己的范围,如公共和私有作用域的函数.但是,在执行此操作后,我的.psm1文件只包含此内容

Get-ChildItem -recurse $psScriptRoot | where { $_.Extension -eq ".ps1" } | foreach { . $_.FullName }

那似乎对吗?所有脚本都是点源的,并且所有脚本在该假设下相互引用.他们应该使用相对于$psScriptRoot的位置来互相引用吗?

有没有办法与这两种方式不同?有人可以提供建议吗?我对这些还不太了解.

我见过类似的技术,其中每个.ps1文件包含一个函数,函数源自WPK模块和PSRemoteRegistry模块中使用的PSM1文件.

这一行是PSRemoteRegistry模块:

Get-ChildItem -Path $PSScriptRoot\*.ps1 | Foreach-Object{ . $_.FullName }

我会说我喜欢有一个函数的巨大脚本文件的技术.

原文链接:https://www.f2er.com/javaschema/281347.html

猜你在找的设计模式相关文章