编写powershell模块时(在powershell中)如何在导入模块时运行命令?
当用户运行import-module mymodule
时,我希望模块首先运行一些命令来进行初始设置。我该怎么做?
答案 0 :(得分:3)
实现这一目标的一种方法是在模块就绪时创建模块清单。您可以使用以下cmdlet
实现此目的New-ModuleManifest
查看更多详情:
Get-Help New-ModuleManifest
您正在寻找的选项是
-ScriptsToProcess <String[]>
Specifies script (.ps1) files that run in the caller's session state when the module is imported. You can use these scripts to prepare an environment, just as you might use a login script.
Required? false
Position? named
Default value None
Accept pipeline input? false
Accept wildcard characters? false
答案 1 :(得分:2)
如果您有PowerShell *.psm1
模块,则还应指定模块清单(*.psd1
)。在此清单中,您可以设置一个PowerShell脚本数组(*.ps1*
)以在模块加载时调用:
# Script files (.ps1) that are run in the caller's environment prior to importing this module.
ScriptsToProcess = @()
答案 2 :(得分:2)
您可以执行上述ScriptsToProcess
事项,但您也可以直接将代码放入.psm1
文件中(在函数定义之外)。这一切都在导入模块时执行,因此不需要使用单独的文件。