我有目录列表。目录被命名为数字。如何通过电源外壳按数字顺序对目录名称进行排序。
Name
-----
1
12
2
排序顺序基于用于比较的属性的类型。
由于Name
目录的属性类型为[string]
,因此会发生字母排序,该排序在10
之前9
(因为第一个1
字符9
在字母顺序之前位于该字符之前)。
要按数字值对数字排序,请使用脚本块(如注释中所示)或计算所得的表达式将值转换为数字类型:
Get-ChildItem -Directory | Sort-Object -Property {$_.Name -as [int]}
使用-as
而不是强制转换将防止Name
无法将属性转换为的对象出现异常[int]
。该-as
类型的操作在PowerShell的3.0版本中引入的,因此对于早期版本中,使用常规演员:
Get-ChildItem -Directory | Sort-Object -Property {[int]$_.Name}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句