我想将主脚本导入测试脚本(用于单元测试),但是使用
. ("P:\Documents\PS\ppmc_Cronet_Interface.ps1")
或
Import-Module P:\Documents\PS\ppmc_Cronet_Interface.ps1
会自动执行主脚本。
有什么通用的方法来处理吗?我尝试添加参数. ("P:\Documents\PS\ppmc_Cronet_Interface.ps1 -t")
,但不会导入文件。
谢谢!
答案 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