
dir
只是想知道在命令提示字元中執行命令(不帶任何參數)時 Windows 如何確定檔案順序。
我知道您可以明確指定順序,但只是好奇在不使用參數時排序如何運作。
原因是我有一個家庭立體聲音響,可以從 USB 驅動器讀取歌曲,並且它播放歌曲的順序似乎與我dir
在 Windows XP 命令提示字元下運行命令時看到的順序相同。如果我能弄清楚在普通dir
命令中排序是如何運作的,我也許可以透過更改檔案的某些屬性來控制立體聲上歌曲的播放順序
答案1
dir
(不含參數)命令始終顯示未排序的檔案/目錄,換句話說 - 按照與檔案/目錄位於磁碟上的順序相同的順序。 NTFS 檔案系統在內部對檔案/目錄進行「排序」(簡化)。
想法,您可以逐一複製檔案以在播放器上實現首選排序。
答案2
順序是「未定義」的,見下文。但這是XY 問題因為有很多工具是為了您真正的排序目的而設計的
- mp3目錄排序器
- YAFS:另一個 FAT 分類器
- FAT讀取器
- FAT-32分類機
- FAT分類機
- 在 MP3 播放器上對 MP3 檔案進行排序
- https://github.com/maxpat78/FATtools
- https://svnpenn.github.io/rosso/
- 如何對 FAT32 檔案系統的檔案重新排序?
根據微軟的dir
文檔(強調我的)
/o [[:]SortOrder]
:控制dir
目錄名和檔案名的排序和顯示順序。如果省略/o
,dir
則依照名稱在目錄中出現的順序顯示名稱。如果使用時/o
不指定SortOrder
,dir
則顯示按字母順序排序的目錄名稱,然後顯示按字母順序排序的檔案名稱。冒號 (:
) 是可選的。
這檔案在目錄中出現的順序取決於檔案系統以及它們如何在目錄條目中儲存檔案清單:
- 在FAT12/16/32文件分配表只是一個簡單的線性列表,當建立新文件時,它只是放在列表中的空白區域。因此,根據建立和刪除狀態,清單順序會有所不同。這就解釋了為什麼 MP3 播放器通常會按照您將檔案複製到資料夾的順序進行播放
- 在NTFS目錄條目儲存在B樹結構,所以結果將是幾乎排序列表
更多關於雷蒙德陳的博客:DIR
如果未指定排序順序,該指令將依什麼順序排列檔案?
如果您不指定排序順序,則
DIR
FindFirstFile
命令按照函數返回文件的順序列出文件。嗯,好吧,但這只是將問題推向了一個新的水平:
FindFirstFile
返回文件的順序是什麼?傳回文件的順序
FindFirstFile
未指定。檔案系統驅動程式將按照它認為最方便的順序傳回檔案。
您可以按照您想要的順序將文件移動到另一個目錄來手動對文件進行排序
如果儲存媒體是FAT格式的USB,則會根據檔案的建立和刪除順序以及檔案名稱的長度,以複雜的順序列舉檔案。但簡單的方法是從目錄中刪除所有文件,然後按照您希望枚舉的順序將文件移至目錄中。這樣,第一個可用的插槽就是目錄末尾的插槽,因此檔案條目會被附加。
也可以看看命令 COPY 會依照什麼順序將檔案從來源複製到目標?:
COPY
、DEL
、DIR
、等指令FOR
在處理之前不會對與通配符模式相符的檔案名稱進行排序。DIR
可以選擇/O
根據下一個字元請求有序輸出。