使用多个文件中的脚本创建PowerScript模块

时间:2014-09-18 05:45:05

标签: visual-studio powershell visual-studio-2012

我将参与一个大型电源脚本项目。我想为我的文件创建一个架构,使其更易于维护。

我想将每个函数放在一个单独的ps1文件中,因此我可以单独管理它们。

例如,考虑我想让2 ps1个文件调用它:FunctionAFunctionB

然后我想要一个MyFunctions.psm1,它是这两个函数的集合。

我不想直接在psm1文件中编写这些函数。我想在文件中单独写入函数,然后在模块中聚合它们。

聚合操作类似于构建项目。

我的乌托邦是一个Visual Studio项目,我可以在其中添加ps1个文件,然后,当我构建项目时,将生成一个psm1文件。

我找到了一个CodePlex project(PowerGUI),它是一个Visual Studio扩展,可以添加PowerShell项目模板。

但是,不幸的是,它似乎没有psm1自动生成。

问题1:有没有办法将此功能添加到项目中,例如,向Build Events添加内容。

问题2:是否有另一种方法可以从psm1文件创建ps1文件。像Aggregate-Functions cmdlet或函数的东西!?

1 个答案:

答案 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

就是这样,模块就绪了。现在,此代码导入模块并测试func1func2

Import-Module .\test.psm1
func1
func2

输出:

Hello from func1
Hello from func2