带参数的 Powershell 导入脚本

Powershell import script with parameter

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

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

提前致谢!

Powershell 中的常用代码 您可以将要包含的代码放在不同的 PS1 文件中,然后 "dot source" 该文件将其包含在当前范围中:

. D:\script_common\MyCode.ps1

仅此而已。

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

Import-Module ActiveDirectory

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

要在 Powershell 中编写自己的模块,请使用 .psm1 扩展名命名模块。通常,您不会在其中一个中执行自由浮动代码;您编写的函数随后可用于导入模块的代码。

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

Import-Module D:\script_common\MyModule.psm1