我将参与一个大型电源脚本项目。我想为我的文件创建一个架构,使其更易于维护。
我想将每个函数放在一个单独的ps1
文件中,因此我可以单独管理它们。
例如,考虑我想让2 ps1
个文件调用它:FunctionA
,FunctionB
。
然后我想要一个MyFunctions.psm1
,它是这两个函数的集合。
我不想直接在psm1
文件中编写这些函数。我想在文件中单独写入函数,然后在模块中聚合它们。
聚合操作类似于构建项目。
我的乌托邦是一个Visual Studio项目,我可以在其中添加ps1
个文件,然后,当我构建项目时,将生成一个psm1
文件。
我找到了一个CodePlex project(PowerGUI),它是一个Visual Studio扩展,可以添加PowerShell项目模板。
但是,不幸的是,它似乎没有psm1
自动生成。
问题1:有没有办法将此功能添加到项目中,例如,向Build Events
添加内容。
问题2:是否有另一种方法可以从psm1
文件创建ps1
文件。像Aggregate-Functions
cmdlet或函数的东西!?
答案 0 :(得分:2)
这在psm1中使用点源非常容易。例如。在我们的模块目录中:
func1.ps1
function func1 {
'Hello from func1'
}
func2.ps1
function func2 {
'Hello from func2'
}
test.psm1
. $PSScriptRoot\func1.ps1
. $PSScriptRoot\func2.ps1
就是这样,模块就绪了。现在,此代码导入模块并测试func1
和func2
:
Import-Module .\test.psm1
func1
func2
输出:
Hello from func1
Hello from func2