【问题标题】:How can I change the headings of hash table columns in powershell script如何更改 powershell 脚本中哈希表列的标题
【发布时间】:2016-12-23 04:06:28
【问题描述】:

我对 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


    【解决方案1】:

    将哈希表传递给Select 命令,并即时构建您的输出,例如:

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

    【讨论】:

    • le 在这里做什么?
    • 它们是LabelExpression 的简写。标签给出了正在创建的属性的名称,而表达式是用于计算属性值的脚本块。
    【解决方案2】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-09
      • 1970-01-01
      • 2016-06-16
      • 1970-01-01
      • 2022-01-24
      • 1970-01-01
      • 2016-06-16
      • 2011-05-14
      相关资源
      最近更新 更多