如何使用数组格式化哈希表?

时间:2019-01-28 23:45:55

标签: powershell formatting hashtable

我想在PowerShell中显示哈希表,并且希望使用数组来填充列之一。

基本上,我是这样的:

$Servers = "training01.us", "training02.us", "training03.us"

#Table
$table = @(@{ColumnA="$Servers";ColumnB=online})
$table.ForEach({[PSCustomObject]$_}) | Format-Table -AutoSize

我想要做的是将每个服务器显示在表的不同行上。例如:

ColumnA
-------
training01.us
training02.us
training03.us

但是相反,我得到了显示:

ColumnA
-------
training01.us training02.us training03.us

我该如何解决?

1 个答案:

答案 0 :(得分:2)

这应该为您提供所需的输出:

$Servers = "training01.us", "training02.us", "training03.us"
$OFS = "`n"
$table = @(@{ColumnA="$Servers";ColumnB='online'})
$table.ForEach({[PSCustomObject]$_}) | Format-Table -AutoSize -Wrap

但是请注意,所有服务器仍位于同一字段(作为单个字符串)。这三个名称字符串仅用换行符连接(通过将“输出字段分隔符”设置为`n)。

Format-Table -Wrap然后显示包装的字符串值,而不会截断输出。

获得相同结果(无需修改$OFS)的另一种方法是

$table = @(@{ColumnA=$Servers -join "`n";ColumnB='online'})
$table.ForEach({[PSCustomObject]$_}) | Format-Table -AutoSize -Wrap