PS对象排序

2024-04-28

我正在尝试格式化与几天前的问题相关的 PSObject。我的对象看起来像这样:

New-Object PSObject -Property @{
    "Version"= $winVersion.Caption
    "Processor Name" = $processorInfo.Name
    "Processor Manufacturer" = $processorInfo.Manufacturer
    "Processor Max Clock Speed" = $processorInfo.MaxClockSpeed     
} |format-list 

上面给出了以下输出:

Processor Manufacturer    : GenuineIntel
Processor Max Clock Speed : 2201
Version                   : Microsoft Windows 8 Pro
Processor Name            : Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz

然而,这:

New-Object PSObject -Property @{
    "Windows Version"= $winVersion.Caption
    "Processor Name" = $processorInfo.Name
    "Processor Manufacturer" = $processorInfo.Manufacturer
    "Processor Max Clock Speed" = $processorInfo.MaxClockSpeed     
} |format-list 

给出以下输出:

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

没什么大不了的,但我想知道为什么格式会改变?无论如何,它似乎都不是按字母顺序排列的。此外,我尝试使用 Sort-Object (从 A-Z)对对象进行排序,但无济于事。与字符串相关吗?


的顺序hashtable无法预测(在 PowerShell V3.0 中,您可以使用[ordered]使哈希表有序的加速器 http://mcpmag.com/articles/2012/12/11/pshell-order.aspx),但在 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PS对象排序 的相关文章

随机推荐