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

时间:2016-08-16 17:07:34

标签: windows powershell scripting hashtable powershell-v2.0

我是Powershell脚本的新手。我正在编写一个power-shell脚本,我在其中声明了如下的哈希表:

$a = 1
$b = 2


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

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

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

如何更改"名称,值和#34;中每列的名称?类似于" Application1,Application2"? 即。

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

感谢帮助!

2 个答案:

答案 0 :(得分:3)

将哈希表传递给Select命令,并动态构建输出,例如:

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

答案 1 :(得分:3)

TheMadTechnician's example上构建,您可以创建一个通用函数来重命名“columns”:

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