我正在尝试格式化与几天前的问题相关的 PSObject。我的对象看起来像这样:
New-Object PSObject -Property @{
"Version"= $winVersion.Caption
"Processor Name" = $processorInfo.Name
"Processor Manufacturer" = $processorInfo.Manufacturer
"Processor Max Clock Speed" = $processorInfo.MaxClockSpeed
} |format-list
Run Code Online (Sandbox Code Playgroud)
以上给出了以下输出:
Processor Manufacturer : GenuineIntel
Processor Max Clock Speed : 2201
Version : Microsoft Windows 8 Pro
Processor Name : Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz
Run Code Online (Sandbox Code Playgroud)
然而,这:
New-Object PSObject -Property @{
"Windows Version"= $winVersion.Caption
"Processor Name" = $processorInfo.Name
"Processor Manufacturer" = $processorInfo.Manufacturer
"Processor Max Clock Speed" = $processorInfo.MaxClockSpeed
} |format-list
Run Code Online (Sandbox Code Playgroud)
给出以下输出:
Processor Manufacturer : GenuineIntel
Processor Max Clock Speed : 2201
Processor Name : Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz
Windows Version : Microsoft Windows 8 Pro
Run Code Online (Sandbox Code Playgroud)
没什么大不了的,但我想知道为什么格式会改变?它似乎不是按字母顺序排列的。此外,我尝试使用 Sort-Object(来自 AZ)对对象进行排序,但无济于事。它与字符串有关吗?
a 的顺序hashtable
无法预测(在 PowerShell V3.0 中,您可以使用[ordered]
加速器来排序哈希表),但在 V2.0 中,您需要像这样构建自定义对象以保留属性顺序:
$o = New-Object PSObject
$o | add-member Noteproperty "Version" $winVersion.Caption
$o | add-member Noteproperty "Processor Name" $processorInfo.Name
$o | add-member Noteproperty "Processor Manufacturer" $processorInfo.Manufacturer
$o | add-member Noteproperty "Processor Max Clock Speed" $processorInfo.MaxClockSpeed
$o | format-list
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6471 次 |
最近记录: |