首页 > 解决方案 > Powershell 值末尾的数字排序

问题描述

我希望用每个末尾的数字对我的输出进行数字排序。

Get-ADComputer -Filter * -SearchBase "OU=ComputerOU,DC=dc,DC=com" -Properties * | Select-Object -ExpandProperty Name

What i would like:
QCL-00010
JPL-00011
TUL-00012
TUL-00013
QCL-00014

What i have:
JPL-00011
QCL-00010
QCL-00014
TUL-00012
TUL-00013

先感谢您

标签: powershell

解决方案


使用示例名称,其中所有数值具有相同的长度,并用前导零填充,您可以简单地扩展您拥有的代码:

Get-ADComputer -Filter * -SearchBase "OU=ComputerOU,DC=dc,DC=com" | 
    Select-Object -ExpandProperty Name | 
    Sort-Object {($_ -split '-')[-1]}

但是,为了安全起见,我也会选择[int]

Get-ADComputer -Filter * -SearchBase "OU=ComputerOU,DC=dc,DC=com" | 
    Select-Object -ExpandProperty Name | 
    Sort-Object {[int]($_ -split '-')[-1]}

结果:

QCL-00010
JPL-00011
TUL-00012
TUL-00013
QCL-00014

顺便提一句。如果您只需要.Name房产,请不要要求所有房产-Properties *


推荐阅读