我对 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
感谢帮助!
将哈希表通过管道传输到
Select
命令,并动态构建输出,例如:
$My_Hash.keys | Select-Object @{l='App1';e={$_}},@{l='App2';e={$My_Hash.$_}}
在 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