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

Powershell 如何使用数组格式化哈希表?,powershell,formatting,hashtable,Powershell,Formatting,Hashtable,我希望在PowerShell中显示哈希表,并希望使用数组填充其中一列 基本上,我得到的是: $Servers = "training01.us", "training02.us", "training03.us" #Table $table = @(@{ColumnA="$Servers";ColumnB=online}) $table.ForEach({[PSCustomObject]$_}) | Format-Table -AutoSize 我希望它做的是在表中的不同行上显示每个服务器。

我希望在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 圆柱 ------- 培训01.us 培训02.us 培训03.美国 但我看到的却是:

ColumnA ------- training01.us training02.us training03.us 圆柱 ------- 培训01.美国培训02.美国培训03.美国
如何解决此问题?

这将为您提供所需的输出:

$Servers = "training01.us", "training02.us", "training03.us"
$OFS = "`n"
$table = @(@{ColumnA="$Servers";ColumnB='online'})
$table.ForEach({[PSCustomObject]$_}) | Format-Table -AutoSize -Wrap
不过,请注意,所有服务器仍位于同一字段中(作为单个字符串)。这三个名称字符串仅用换行符连接(通过将输出字段分隔符设置为
`n

格式化表格-换行
然后显示换行的字符串值,而不截断输出

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


这将为您提供所需的输出:

$Servers = "training01.us", "training02.us", "training03.us"
$OFS = "`n"
$table = @(@{ColumnA="$Servers";ColumnB='online'})
$table.ForEach({[PSCustomObject]$_}) | Format-Table -AutoSize -Wrap
不过,请注意,所有服务器仍位于同一字段中(作为单个字符串)。这三个名称字符串仅用换行符连接(通过将输出字段分隔符设置为
`n

格式化表格-换行
然后显示换行的字符串值,而不截断输出

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


据我所知,您可能需要编写自己的格式代码,或者创建一个每键一个值的哈希表,而不是值中的数组。根据我所知,您可能需要编写自己的格式代码,或者创建一个每键一个值的哈希表,而不是值中的数组。这两种方法都很好。只是出于好奇,有可能把它们分开吗?我不需要密码,只是好奇而已。但是,PowerShell通常不会按列组织数据。这样做的尝试往往是。如果ColumnB中有一个类似$Servers的数组变量,这种情况会改变吗?也许不会。这取决于你有什么样的数据,两者都很好。只是出于好奇,有可能把它们分开吗?我不需要密码,只是好奇而已。但是,PowerShell通常不会按列组织数据。这样做的尝试往往是。如果ColumnB中有一个类似$Servers的数组变量,这种情况会改变吗?也许不会。这取决于你有什么数据。