Windows 控制台中“dir”命令的默认文件顺序

Windows 控制台中“dir”命令的默认文件顺序

dir只是想知道 Windows在命令提示符中运行命令(不带任何参数)时如何确定文件顺序。

我知道您可以明确指定顺序,但只是好奇当不使用参数时排序如何工作。

原因是我有一个家用立体声音响,它可以从 USB 驱动器读取歌曲,而且它播放歌曲的顺序似乎与我dir在 Windows XP 命令提示符下运行命令时看到的顺序相同。如果我能弄清楚 vanilla 命令中的排序方式dir,我可能能够通过更改文件的某些属性来控制立体声音响上歌曲的播放顺序

答案1

dir(无参数) 命令始终显示未排序的文件/目录,换句话说 - 按文件/目录在磁盘上的顺序排列。NTFS 文件系统在内部对文件/目录进行“排序”(简化)。

想的话,您可以逐个复制文件以在播放器上实现首选排序。

答案2

顺序是“未定义”的,见下文。但这是XY 问题因为有很多工具可以满足你真正的分类目的


根据微软的dir文档(重点是我的)

/o [[:]SortOrder]:控制dir目录名和文件名的排序和显示顺序。如果省略/odir则按目录中出现的顺序显示名称。如果使用/o而不指定SortOrderdir则显示目录名称(按字母顺序排序),然后显示文件名称(按字母顺序排序)。冒号 ( :) 是可选的。

文件在目录中出现的顺序取决于文件系统以及它们如何在目录条目中存储文件列表:

  • FAT12/16/32文件分配表只是一个简单的线性列表中,当创建新文件时,它只是放在列表中的空白处。因此,根据创建和删除状态,列表顺序会有所不同。这解释了为什么 mp3 播放器通常按照您将文件复制到文件夹的顺序播放
  • NTFS目录条目存储在B树结构,因此结果将是几乎排序的列表

更多关于Raymond Chen 的博客DIR如果没有指定排序顺序,命令将按照什么顺序排列文件?

如果不指定排序顺序,则DIRFind­First­File命令按照函数返回文件的顺序列出文件

嗯,好的,但是这只是将问题推向了一个新的层次:Find­First­File返回文件的顺序是什么?

返回文件的顺序Find­First­File未指定。文件系统驱动程序将按照其认为最方便的顺序返回文件。

您可以手动对文件进行排序,按照您想要的顺序将它们移动到另一个目录

如果存储介质是 FAT 格式的 USB 拇指驱动器,则文件将根据文件创建和删除的顺序以及文件名称的长度以复杂的顺序枚举。但简单的解决方法是简单地从目录中删除所有文件,然后按照您希望枚举的顺序将文件文件移动到目录中。这样,第一个可用的插槽就是目录末尾的插槽,因此文件条目将被附加。


也可以看看COPY 命令按照什么顺序将文件从源复制到目标?

命令COPYDELDIRFOR等在处理之前不会对与通配符模式匹配的文件名进行排序。DIR可以选择/O根据下一个字符请求有序输出。

相关内容