使用Powershell对目录名进行排序
我有一个目录列表。目录以数字命名。如何按powershell按数字顺序对目录名排序使用Powershell对目录名进行排序,powershell,Powershell,我有一个目录列表。目录以数字命名。如何按powershell按数字顺序对目录名排序 Name ----- 1 12 2 排序顺序基于用于比较的属性的类型 由于目录的Name属性的类型为[string],因此会进行字母排序,将10排在9之前(因为第一个字符1按字母顺序排在字符9之前) 要按数值对数字进行排序,请使用scriptblock(as)或计算表达式将值强制转换为数值类型: Get-ChildItem -Directory | Sort-Object -Property {$_.Name
Name
-----
1
12
2
排序顺序基于用于比较的属性的类型 由于目录的
Name
属性的类型为[string]
,因此会进行字母排序,将10
排在9
之前(因为第一个字符1
按字母顺序排在字符9
之前)
要按数值对数字进行排序,请使用scriptblock(as)或计算表达式将值强制转换为数值类型:
Get-ChildItem -Directory | Sort-Object -Property {$_.Name -as [int]}
使用-as
,而不是强制转换将防止对象出现异常,名称
属性无法转换为[int]
。PowerShell 3.0版中引入了-as
类型运算符,因此对于早期版本,请使用常规强制转换:
Get-ChildItem -Directory | Sort-Object -Property {[int]$_.Name}
排序{[int]$\u.Name}
相关: