在PowerShell的Get-ChildItem命令中,结果集的默认顺序是什么? 是否有顺序,还是随机的,每次都会以不同的顺序给出结果。
在PowerShell的Get-ChildItem命令中,结果集的默认顺序是什么? 是否有顺序,还是随机的,每次都会以不同的顺序给出结果。
没有保证的默认排序顺序。 文档 没有说明。
FileSystemProvider
中的实现最终会调用DirectoryInfo.GetFiles
。该文档说明如下:
返回的文件名的顺序不能保证; 如果需要特定的排序顺序,请使用 Sort 方法。
底层API调用是 FindFirstFile
和 FindNextFile
。 Raymond Chen 在这里解释,实际上文件系统驱动程序可能会遵循一些排序规则,但不应依赖于此。
默认排序对我不起作用。我得到的结果是:
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
不会对其项目进行排序。 - phuclvFirst folders in alphanumeric order (first numbers as [char]).
Then files in alphanumeric order (first numbers as [char]).