【问题标题】:Ordering numbered directories that are delimited with a fullstop对用句号分隔的编号目录进行排序
【发布时间】:2016-06-30 19:29:13
【问题描述】:

我有一个查询返回路径中的文件夹列表:

Get-ChildItem "." -Directory -Filter "*"| Select -Property Name | Sort-Object Name -Descending

在结果中我得到一个对象列表:

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        30/06/2016     09:51            1.3.35.6503
d----        14/12/2015     11:04            1.3.29.5885                                                                                                                                         
d----        16/11/2015     09:54            1.3.28.5790                                                                                                                                         
d----        27/06/2016     19:33            1.18.3.6497                                                                                                                                         
d----        21/06/2016     19:33            1.18.2.6492                                                                                                                                         
d----        21/06/2016     11:55            1.18.1.6490                                                                                                                                         
d----        10/05/2016     19:34            1.17.99.6427   

这是我没想到的顺序!查看 Windows 资源管理器,如果我按降序对列进行排序,它确实会将它们按正确的顺序排列。

这似乎是按每个单独的文本对它们进行排序,而 Windows 资源管理器更聪明一点,它是通过字符串来完成的。

在 PowerShell 中是否有一种简单的方法可以将此顺序转换为正确的顺序(例如 Windows 资源管理器)?我正在考虑一个函数来返回列表并添加通过将原始名称拆分为 4 个元素并按这些元素单独排序来创建具有 FullName 和 Name 的新对象。

【问题讨论】:

    标签: powershell


    【解决方案1】:

    您想按Version 对文件进行排序。您不需要拆分字符串,只需将 BaseName 转换为 version 并对其进行排序:

    Get-ChildItem '.' -Directory -Filter "*" | sort { [version]$_.BaseName }
    

    结果:

    Mode                LastWriteTime         Length Name                                                                                                                                     
    ----                -------------         ------ ----                                                                                                                                     
    -a----       30.06.2016     13:15              0 1.3.28.5790.txt                                                                                                                          
    -a----       30.06.2016     13:15              0 1.3.29.5885.txt                                                                                                                          
    -a----       30.06.2016     13:15              0 1.3.35.6503.txt                                                                                                                          
    -a----       30.06.2016     13:15              0 1.17.99.6427.txt                                                                                                                         
    -a----       30.06.2016     13:15              0 1.18.1.6490.txt                                                                                                                          
    -a----       30.06.2016     13:15              0 1.18.2.6492.txt                                                                                                                          
    -a----       30.06.2016     13:15              0 1.18.3.6497.txt 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-16
      • 1970-01-01
      • 1970-01-01
      • 2021-12-06
      • 2020-03-14
      • 2018-04-12
      • 2018-05-19
      相关资源
      最近更新 更多