PowerShell使用Select-Object展开ExportedCommands属性并逐行输出模块名
PowerShell 展开模块导出命令解决方案
实现命令
你可以通过 Select-Object 的扩展属性(计算属性)功能实现需求,直接执行以下代码即可:
Get-Module -Name Microsoft.PowerShell.Utility | ForEach-Object { $moduleName = $_.Name $_.ExportedCommands.Keys | Select-Object ` @{Name = 'Name'; Expression = {$moduleName}}, @{Name = 'ExportedCmdlets'; Expression = {$_}} }
逻辑说明
- 首先用
Get-Module获取指定的模块对象 - 用
ForEach-Object遍历拿到的模块,先暂存当前模块的名称 - 遍历模块
ExportedCommands属性的所有键,也就是该模块所有导出的命令名称 - 通过
Select-Object自定义两个扩展属性:Name属性值固定为当前模块的名称ExportedCmdlets属性值为当前遍历到的单个命令名
- 输出结果会自动以表格形式展示,每条命令单独占一行,对应相同的模块名称,完全匹配你需要的输出格式。
内容的提问来源于stack exchange,提问作者David Morrow
相关产品推荐
相关产品推荐

