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



我想在PowerShell中显示一个哈希表,我想使用数组来填充其中一列。

基本上,我拥有的是:

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

我希望它做的是在表中的不同行上显示每个服务器。例如:

列 A-------training01.ustraining02.ustraining03.us

但相反,我显示的是:

列 A-------training01.us training02.us training03.us

我该如何解决这个问题?

这应该给你所需的输出:

$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

最新更新