如何从 MyModule.psm1 中检索 MyModule.psd1 散列值的值,例如 RootModule、ModuleVersion 和 HelpInfoURI?
How to retrieve value of MyModule.psd1 hash values such as RootModule, ModuleVersion, and HelpInfoURI from within MyModule.psm1?
我需要一些自省,因为在不同的目录和 PS 存储库中有许多相同模块名称的版本,并且 运行 PS 脚本需要知道哪个版本是目前 运行。
给定样板 powershell .\MyModule\MyModule.psd1
清单和 .\MyModule\MyModule.psm1
模块,如何从 MyModule.psm1
中引用 MyModule.psd1
中的值?
# MyModule.psd1:
@{
# Script module or binary module file associated with this manifest.
RootModule = 'MyModule.psm1'
# Version number of this module.
ModuleVersion = '2020.1.12.1611'
# Author of this module
Author = 'MeMyselfI'
}
和模块 MyModule.psm1:
#MyModule.psm1
write-host "$RootModule VERSION: $ModuleVersion by $Author"
write-host "For help, please see $HelpInfoURI"
write-host "$PrivateData[PSData].Tags"
如何获取 MyModule.psd1
哈希条目常量的值,例如 RootModule
、ModuleVersion
、HelpInfoURI
、Path
,甚至 $PrivateData[$PSData].Tags
来自相应的 MyModule.psm1
? PowerShell 中的自省一定很容易,但我的模块不知道它是什么,帮助它找到自己:)
您只需使用 Get-Module
和您的模块名称,您就可以从那里访问所有这些值。
$ModuleInfos = Get-Module -Name MyModule
write-host "$($ModuleInfos.RootModule) VERSION: $($ModuleInfos.Version) by $($ModuleInfos.Author)"
write-host "For help, please see $($ModuleInfos.HelpInfoUri)"
write-host $ModuleInfos.PrivateData.PSData.Item('Tags')
您也可以从任何 Powershell 控制台 window 从任何地方执行此操作,前提是您的模块已经导入(在 psm1 中,您不需要导入模块)。
这是实现相同目的的另一种方法(来自 psm1 文件)
$ModuleInfos = Import-PowerShellDataFile -Path "$PsScriptRoot\MyModule.psd1"
我需要一些自省,因为在不同的目录和 PS 存储库中有许多相同模块名称的版本,并且 运行 PS 脚本需要知道哪个版本是目前 运行。
给定样板 powershell .\MyModule\MyModule.psd1
清单和 .\MyModule\MyModule.psm1
模块,如何从 MyModule.psm1
中引用 MyModule.psd1
中的值?
# MyModule.psd1:
@{
# Script module or binary module file associated with this manifest.
RootModule = 'MyModule.psm1'
# Version number of this module.
ModuleVersion = '2020.1.12.1611'
# Author of this module
Author = 'MeMyselfI'
}
和模块 MyModule.psm1:
#MyModule.psm1
write-host "$RootModule VERSION: $ModuleVersion by $Author"
write-host "For help, please see $HelpInfoURI"
write-host "$PrivateData[PSData].Tags"
如何获取 MyModule.psd1
哈希条目常量的值,例如 RootModule
、ModuleVersion
、HelpInfoURI
、Path
,甚至 $PrivateData[$PSData].Tags
来自相应的 MyModule.psm1
? PowerShell 中的自省一定很容易,但我的模块不知道它是什么,帮助它找到自己:)
您只需使用 Get-Module
和您的模块名称,您就可以从那里访问所有这些值。
$ModuleInfos = Get-Module -Name MyModule
write-host "$($ModuleInfos.RootModule) VERSION: $($ModuleInfos.Version) by $($ModuleInfos.Author)"
write-host "For help, please see $($ModuleInfos.HelpInfoUri)"
write-host $ModuleInfos.PrivateData.PSData.Item('Tags')
您也可以从任何 Powershell 控制台 window 从任何地方执行此操作,前提是您的模块已经导入(在 psm1 中,您不需要导入模块)。
这是实现相同目的的另一种方法(来自 psm1 文件)
$ModuleInfos = Import-PowerShellDataFile -Path "$PsScriptRoot\MyModule.psd1"