powershell 获取文本形式的物理磁盘排序号

72qzrwbm  于 2023-01-26  发布在  Shell
关注(0)|答案(1)|浏览(101)

当我得到Get-PhysicalDisk的结果时,结果似乎是按文本而不是按数字排序的:

Get-PhysicalDisk   | Where-Object { $_.CanPool -eq $True } |  Sort-Object -Property DeviceID

我得到

Number  OperationalStatus   HealthStatus
10  SSD TRUE    OK  Healthy Auto-Select 6.82    TB
11  SSD TRUE    OK  Healthy Auto-Select 6.82    TB
12  SSD TRUE    OK  Healthy Auto-Select 6.82    TB
13  SSD TRUE    OK  Healthy Auto-Select 6.82    TB
14  SSD TRUE    OK  Healthy Auto-Select 6.82    TB
15  SSD TRUE    OK  Healthy Auto-Select 6.82    TB
16  SSD TRUE    OK  Healthy Auto-Select 6.82    TB
17  SSD TRUE    OK  Healthy Auto-Select 6.82    TB
18  SSD TRUE    OK  Healthy Auto-Select 6.82    TB
19  SSD TRUE    OK  Healthy Auto-Select 6.82    TB
20  SSD TRUE    OK  Healthy Auto-Select 6.82    TB
5   SSD TRUE    OK  Healthy Auto-Select 6.82    TB
6   SSD TRUE    OK  Healthy Auto-Select 6.82    TB
7   SSD TRUE    OK  Healthy Auto-Select 6.82    TB
8   SSD TRUE    OK  Healthy Auto-Select 6.82    TB
9   SSD TRUE    OK  Healthy Auto-Select 6.82    TB

所以看起来排序是按照文本顺序而不是数字顺序。我如何将其作为数字进行排序?

6bc51xsx

6bc51xsx1#

.DeviceId是一个字符串属性,因此您需要使用计算表达式强制转换[int]以正确排序它们:

Get-PhysicalDisk -CanPool $true | Sort-Object { [int] $_.DeviceId }

相关问题