Windows コンソールの「dir」コマンドのデフォルトのファイル順序

Windows コンソールの「dir」コマンドのデフォルトのファイル順序

dirコマンド プロンプトでコマンド (引数なし)を実行するときに、Windows がファイルの順序をどのように決定するかを知りたいだけです。

順序を明示的に指定できることは知っていますが、パラメータが使用されていない場合に順序がどのように機能するかを知りたいだけです。

理由は、USB ドライブから曲を読み込むことができるホームステレオがあり、dirWindows XP のコマンドプロンプトでコマンドを実行したときと同じ順序で曲が再生されるように見えるからです。バニラコマンドで順序がどのように機能するかがわかればdir、ファイルの特定の属性を変更することで、ステレオでの曲の再生順序を制御できるかもしれません。

答え1

dir(引数なし) コマンドは常にファイル/ディレクトリをソートせずに表示します。つまり、ファイル/ディレクトリがディスク上に配置されているのと同じ順序で表示します。NTFS ファイル システムは、ファイル/ディレクトリを内部的に「ソート」します (簡略化)。

ただし、プレーヤーで好みの並べ替えを実現するために、ファイルを 1 つずつコピーすることもできます。

答え2

順序は「未定義」です。以下を参照してください。しかし、これはXY問題実際の分類目的のために作られたツールがたくさんあるからです


によるとMicrosoftのdirドキュメント(強調は筆者による)

/o [[:]SortOrder]dir:ディレクトリ名とファイル名を並べ替えて表示する順序を制御します。を省略すると/odirディレクトリ内で出現する順序で名前が表示されます。/oを指定せずにを使用するとSortOrderdirディレクトリ名がアルファベット順にソートされて表示され、次にファイル名がアルファベット順にソートされて表示されます。コロン ( :) はオプションです。

ディレクトリ内のファイルの順序ファイル システムと、ディレクトリ エントリにファイル リストを格納する方法によって異なります。

  • ファット12/16/32ファイルアロケーションテーブルは単純な線形リストに新しいファイルが作成されると、リストの空きスペースに配置されるだけです。したがって、作成と削除の状態に応じて、リストの順序は異なります。これが、MP3プレーヤーがファイルをフォルダにコピーした順序で再生される理由です。
  • NTFSディレクトリエントリはBツリー構造、結果はほぼソートされたリスト

詳細はこちらレイモンド・チェンのブログ:DIRソート順序が指定されていない場合、コマンドはファイルをどのような順序で並べますか?

並べ替え順序を指定しない場合は、DIRFind­First­Fileコマンドは関数によって返されるファイルの順序でファイルをリストします。

ええと、わかりました。しかし、それは質問を次のレベルに押し上げるだけです。Find­First­Fileファイルはどのような順序で返されるのでしょうか?

Find­First­Fileファイルが返される順序は未指定です。最も便利な順序でファイルを返すのは、ファイル システム ドライバー次第です。

ファイルを別のディレクトリに移動して、手動で並べ替えることができます。

ストレージ メディアが FAT 形式の USB サム ドライブである場合、ファイルは、ファイルの作成順序と削除順序、および名前の長さに基づいて複雑な順序で列挙されます。ただし、簡単な方法は、ディレクトリからすべてのファイルを削除し、列挙する順序でファイルをディレクトリに移動するだけです。この方法では、使用可能な最初のスロットはディレクトリの末尾にあるため、ファイル エントリが追加されます。


参照COPY コマンドは、どの順序でソースから宛先にファイルをコピーしますか?:

コマンドCOPYDELDIRFORなどは、処理前にワイルドカード パターンに一致するファイル名をソートしません。 には、次の文字に応じて順序付けられた出力を要求するDIRオプションがあります。/O

関連情報