【问题标题】:What is the default order of result set from Get-ChildItem command in powershell?Powershell中Get-ChildItem命令的结果集默认顺序是什么?
【发布时间】:2013-03-26 07:49:58
【问题描述】:

Powershell 中 Get-ChildItem 命令的结果集默认顺序是什么? 是否有一个顺序,或者它只是随机的,并且每次都会以不同的顺序给出结果。

【问题讨论】:

    标签: powershell powershell-2.0


    【解决方案1】:

    没有保证的默认排序顺序。 The documentation 没有声明一个。

    FileSystemProvider 中的实现最终调用DirectoryInfo.GetFiles。该状态的文档

    不保证返回文件名的顺序;使用排序 方法,如果需要特定的排序顺序。

    底层 API 调用是 Find­First­FileFindNextFile。 Raymond Chen explains here 在实践中文件系统驱动程序可能会遵守一些排序规则,但这不应该被依赖。

    【解决方案2】:

    默认排序对我不起作用。我明白了:

    Mode                LastWriteTime     Length Name
    ----                -------------     ------ ----
    d----        2015-10-12     10:51            tools
    d----        2015-10-12     10:58            cfg
    d----        2015-10-12     10:51            res
    d----        2015-10-12     10:50            brand
    d----        2015-10-12     10:51            lib
    

    我不记得更改排序顺序。我在 Windows 7 SP1 上。如果我需要排序结果,我必须这样做ls | sort

    【讨论】:

    • 这是因为Get-ChildItem 没有对其项目进行排序,如上所述
    【解决方案3】:
    First folders in alphanumeric order (first numbers as [char]).
    Then files in alphanumeric order (first numbers as [char]).
    

    【讨论】:

    • 这是错误的。你有这个报价吗?
    猜你喜欢
    • 1970-01-01
    • 2021-08-05
    • 1970-01-01
    • 2021-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多