具有参数的Powershell导入脚本

时间:2018-07-05 12:48:52

标签: powershell unit-testing import powershell-v4.0

我想将主脚本导入测试脚本(用于单元测试),但是使用
. ("P:\Documents\PS\ppmc_Cronet_Interface.ps1")
Import-Module P:\Documents\PS\ppmc_Cronet_Interface.ps1会自动执行主脚本。

有什么通用的方法来处理吗?我尝试添加参数. ("P:\Documents\PS\ppmc_Cronet_Interface.ps1 -t"),但不会导入文件。

谢谢!

1 个答案:

答案 0 :(得分:2)

Powershell中的通用代码 您可以将要包含的代码放在另一个PS1文件中,然后“点源”该文件以将其包含在当前作用域中:

. D:\script_common\MyCode.ps1

仅此而已。

使用模块 您可能会考虑使用模块,可以使用Import-Module cmdlet将其包含在内。您可能已经使用它来处理Active Directory之类的事情,在其中可以执行以下操作:

Import-Module ActiveDirectory

在这种情况下,您只需要模块的名称,因为它在一个特殊的目录中。

要在Powershell中编写自己的模块,请使用扩展名.psm1命名该模块。通常,您不会在其中一种情况下执行自由浮动代码。您编写函数,然后这些函数可用于导入模块的代码。

要从任何地方导入脚本模块,请使用完整路径:

Import-Module D:\script_common\MyModule.psm1