【问题标题】:Sort Directory name using Powershell使用 Powershell 对目录名称进行排序
【发布时间】:2015-11-12 15:56:49
【问题描述】:

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

Name
-----
1
12
2

【问题讨论】:

标签: powershell


【解决方案1】:

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

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

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

Get-ChildItem -Directory | Sort-Object -Property {$_.Name -as [int]}

使用-as,而不是强制转换将防止Name 属性无法转换为[int] 的对象出现异常。 -as 类型运算符是在 PowerShell 版本 3.0 中引入的,因此对于早期版本,请使用常规强制转换:

Get-ChildItem -Directory | Sort-Object -Property {[int]$_.Name}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-04
    • 2011-07-04
    • 2014-01-14
    • 1970-01-01
    • 2021-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多