使用Powershell对目录名进行排序

使用Powershell对目录名进行排序,powershell,Powershell,我有一个目录列表。目录以数字命名。如何按powershell按数字顺序对目录名排序 Name ----- 1 12 2 排序顺序基于用于比较的属性的类型 由于目录的Name属性的类型为[string],因此会进行字母排序,将10排在9之前(因为第一个字符1按字母顺序排在字符9之前) 要按数值对数字进行排序,请使用scriptblock(as)或计算表达式将值强制转换为数值类型: Get-ChildItem -Directory | Sort-Object -Property {$_.Name

我有一个目录列表。目录以数字命名。如何按powershell按数字顺序对目录名排序

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}
相关: