我想在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
我该如何解决?
答案 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