我有目录列表。目录被命名为数字。如何通过电源外壳按数字顺序对目录名称进行排序。
Name
-----
1
12
2
Run Code Online (Sandbox Code Playgroud)
排序顺序基于用于比较的属性的类型。
由于Name目录的属性是type [string],因此会发生字母排序,该排序在10之前9(因为第一个1字符9在字母之前位于该字符之前)。
要按数字值对数字排序,请使用脚本块(如注释中所示)或计算出的表达式将值转换为数字类型:
Get-ChildItem -Directory | Sort-Object -Property {$_.Name -as [int]}
Run Code Online (Sandbox Code Playgroud)
使用-as而不是强制转换将防止Name无法将属性转换为的对象出现异常[int]。该-as类型的操作在PowerShell的3.0版本中引入的,因此对于早期版本中,使用常规演员:
Get-ChildItem -Directory | Sort-Object -Property {[int]$_.Name}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3395 次 |
| 最近记录: |