使用Powershell对目录名称进行排序

时间:2015-11-12 05:17:28

标签: powershell

我有目录列表。目录以数字命名。如何通过power shell按数字顺序对目录名进行排序。

Name
-----
1
12
2

1 个答案:

答案 0 :(得分:4)

排序顺序基于用于比较的属性的类型

由于目录的Name属性属于[string]类型,因此会按字母顺序排序,在10之前排名9(因为第一个字符{{1} }按字母顺序排在字符1之前。)

要按数字值对数字进行排序,请使用scriptblock(如shown in the comments)或计算表达式将值转换为数字类型:

9

使用Get-ChildItem -Directory | Sort-Object -Property {$_.Name -as [int]} 而不是强制转换可以防止-as属性无法转换为Name的对象的异常。 PowerShell 3.0版中引入了[int]类型运算符,因此对于早期版本,请使用常规强制转换:

-as