如何更改 powershell 脚本中哈希表列的标题

问题描述 投票:0回答:2

我对 Powershell 脚本编写相当陌生。我正在编写一个 power-shell 脚本,其中声明了一个哈希表,如下所示:

$a = 1
$b = 2


$my_hash = @{}
$my_hash.Add($a, $b)

当我在 Powershell 中打印表格时,哈希表的标题显示

 Name  Value
 ----  -----
 1     2

如何将每列的名称从“名称,值”更改为“应用程序1,应用程序2”之类的名称? 即

 App1  App2
 ----  -----
 1     2

感谢帮助!

windows powershell scripting hashtable powershell-2.0
2个回答
10
投票

将哈希表通过管道传输到

Select
命令,并动态构建输出,例如:

$My_Hash.keys | Select-Object @{l='App1';e={$_}},@{l='App2';e={$My_Hash.$_}}

4
投票

TheMadTechnician 的示例的基础上,您可以创建一个通用函数来重命名“列”:

function Format-Hashtable {
    param(
      [Parameter(Mandatory,ValueFromPipeline)]
      [hashtable]$Hashtable,

      [ValidateNotNullOrEmpty()]
      [string]$KeyHeader = 'Name',

      [ValidateNotNullOrEmpty()]
      [string]$ValueHeader = 'Value'
    )

    $Hashtable.GetEnumerator() |Select-Object @{Label=$KeyHeader;Expression={$_.Key}},@{Label=$ValueHeader;Expression={$_.Value}}

}

然后这样称呼它:

PS C:\> $my_hash |Format-Hashtable -KeyHeader App1 -ValueHeader App2

App1 App2
---- ----
   1    2
© www.soinside.com 2019 - 2024. All rights reserved.