Windows 控制台中「dir」指令的預設檔案順序

Windows 控制台中「dir」指令的預設檔案順序

dir只是想知道在命令提示字元中執行命令(不帶任何參數)時 Windows 如何確定檔案順序。

我知道您可以明確指定順序,但只是好奇在不使用參數時排序如何運作。

原因是我有一個家庭立體聲音響,可以從 USB 驅動器讀取歌曲,並且它播放歌曲的順序似乎與我dir在 Windows XP 命令提示字元下運行命令時看到的順序相同。如果我能弄清楚在普通dir命令中排序是如何運作的,我也許可以透過更改檔案的某些屬性來控制立體聲上歌曲的播放順序

答案1

dir(不含參數)命令始終顯示未排序的檔案/目錄,換句話說 - 按照與檔案/目錄位於磁碟上的順序相同的順序。 NTFS 檔案系統在內部對檔案/目錄進行「排序」(簡化)。

想法,您可以逐一複製檔案以在播放器上實現首選排序。

答案2

順序是「未定義」的,見下文。但這是XY 問題因為有很多工具是為了您真正的排序目的而設計的


根據微軟的dir文檔(強調我的)

/o [[:]SortOrder]:控制dir目錄名和檔案名的排序和顯示順序。如果省略/odir則依照名稱在目錄中出現的順序顯示名稱。如果使用時/o不指定SortOrderdir則顯示按字母順序排序的目錄名稱,然後顯示按字母順序排序的檔案名稱。冒號 ( :) 是可選的。

檔案在目錄中出現的順序取決於檔案系統以及它們如何在目錄條目中儲存檔案清單:

  • FAT12/16/32文件分配表只是一個簡單的線性列表,當建立新文件時,它只是放在列表中的空白區域。因此,根據建立和刪除狀態,清單順序會有所不同。這就解釋了為什麼 MP3 播放器通常會按照您將檔案複製到資料夾的順序進行播放
  • NTFS目錄條目儲存在B樹結構,所以結果將是幾乎排序列表

更多關於雷蒙德陳的博客DIR如果未指定排序順序,該指令將依什麼順序排列檔案?

如果您不指定排序順序,則DIRFind­First­File命令按照函數返回文件的順序列出文件

嗯,好吧,但這只是將問題推向了一個新的水平:Find­First­File返回文件的順序是什麼?

傳回文件的順序Find­First­File未指定。檔案系統驅動程式將按照它認為最方便的順序傳回檔案。

您可以按照您想要的順序將文件移動到另一個目錄來手動對文件進行排序

如果儲存媒體是FAT格式的USB,則會根據檔案的建立和刪除順序以及檔案名稱的長度,以複雜的順序列舉檔案。但簡單的方法是從目錄中刪除所有文件,然後按照您希望枚舉的順序將文件移至目錄中。這樣,第一個可用的插槽就是目錄末尾的插槽,因此檔案條目會被附加。


也可以看看命令 COPY 會依照什麼順序將檔案從來源複製到目標?

COPYDELDIR、等指令FOR在處理之前不會對與通配符模式相符的檔案名稱進行排序。DIR可以選擇/O根據下一個字元請求有序輸出。

相關內容