Standardmäßige Dateireihenfolge des Befehls „dir“ in der Windows-Konsole

Standardmäßige Dateireihenfolge des Befehls „dir“ in der Windows-Konsole

Ich frage mich nur, wie Windows die Dateireihenfolge bestimmt, wenn ein dirBefehl (ohne Argumente) in einer Eingabeaufforderung ausgeführt wird.

Ich weiß, dass Sie eine Reihenfolge explizit angeben können, bin aber neugierig, wie die Sortierung funktioniert, wenn keine Parameter verwendet werden.

Der Grund dafür ist, dass ich eine Stereoanlage habe, die Songs von einem USB-Laufwerk lesen kann, und sie scheint Songs in derselben Reihenfolge abzuspielen, wie sie angezeigt wird, wenn ich einen dirBefehl in einer Windows XP-Eingabeaufforderung ausführe. Wenn ich herausfinden kann, wie die Reihenfolge in einem Standardbefehl funktioniert dir, kann ich möglicherweise die Wiedergabereihenfolge der Songs auf der Stereoanlage steuern, indem ich bestimmte Attribute der Dateien ändere.

Antwort1

dir(ohne Argumente) Der Befehl zeigt Dateien/Verzeichnisse immer unsortiert an, d. h. in derselben Reihenfolge, in der sie sich auf der Festplatte befinden. Das NTFS-Dateisystem „sortiert“ Dateien/Verzeichnisse intern (vereinfachend).

Sie können die Dateien auch einzeln kopieren, um die gewünschte Sortierung auf Ihrem Player zu erreichen.

Antwort2

Die Reihenfolge ist "undefiniert", siehe unten. Aber das istein XY-Problemweil es viele Werkzeuge gibt, die für Ihren eigentlichen Sortierzweck gemacht sind


EntsprechendMicrosoft- dirDokumentation(Hervorhebung von mir)

/o [[:]SortOrder]: Steuert die Reihenfolge, in der dirVerzeichnisnamen und Dateinamen sortiert und angezeigt werden.Wenn Sie weglassen /o, dirwerden die Namen in der Reihenfolge angezeigt, in der sie im Verzeichnis vorkommen. Wenn Sie /oohne Angabe von verwenden SortOrder, dirwerden die Namen der Verzeichnisse alphabetisch sortiert und anschließend die Namen der Dateien alphabetisch sortiert angezeigt. Der Doppelpunkt ( :) ist optional.

DerReihenfolge, in der Dateien in einem Verzeichnis vorkommenhängt vom Dateisystem und der Art und Weise ab, wie Dateilisten in einem Verzeichniseintrag gespeichert werden:

  • InFAT12/16/32Die Dateizuordnungstabelle ist nur eine einfachelinearListe und wenn eine neue Datei erstellt wird, wird sie einfach in einen leeren Platz in der Liste eingefügt. Daher variiert die Listenreihenfolge je nach Erstellungs- und Löschstatus. Das erklärt, warum MP3-Player oft in der Reihenfolge abspielen, in der Sie Dateien in den Ordner kopieren
  • InNTFSVerzeichniseinträge werden gespeichert in einemB-Baum-Struktur, das Ergebnis wird also einfast sortierte Liste

Mehr zuRaymond Chens Blog:In welcher Reihenfolge ordnet der DIRBefehl die Dateien an, wenn keine Sortierreihenfolge angegeben ist?

Wenn Sie keine Sortierreihenfolge angeben, dannDIRDer Befehl listet die Dateien in der Reihenfolge auf, in der sie von der Find­First­FileFunktion zurückgegeben werden..

Ähm, okay, aber das bringt die Frage nur auf die nächste Ebene: In welcher Reihenfolge werden Find­First­FileDateien zurückgegeben?

Die Reihenfolge, in der Find­First­FileDateien zurückgegeben werden, ist nicht angegeben.Es bleibt dem Dateisystemtreiber überlassen, die Dateien in der Reihenfolge zurückzugeben, die er für am praktischsten hält.

Sie können die Dateien manuell sortieren, indem Sie sie in der gewünschten Reihenfolge in ein anderes Verzeichnis verschieben

Wenn das Speichermedium ein FAT-formatierter USB-Stick ist, werden die Dateien in einer komplexen Reihenfolge aufgelistet, die auf der Reihenfolge basiert, in der die Dateien erstellt und gelöscht werden, und auf der Länge ihrer Namen. Der einfache Ausweg besteht jedoch darin, einfach alle Dateien aus einem Verzeichnis zu entfernen und die Dateien dann in der Reihenfolge, in der sie aufgelistet werden sollen, in das Verzeichnis zu verschieben. Auf diese Weise ist der erste verfügbare Steckplatz der am Ende des Verzeichnisses, sodass der Dateieintrag angehängt wird.


Siehe auchIn welcher Reihenfolge kopiert der Befehl COPY Dateien von der Quelle zum Ziel?:

Die Befehle COPY, DEL, DIR, FOR, usw. sortieren Dateinamen vor der Verarbeitung nicht nach einem Platzhaltermuster. DIRverfügt über die Option /O, je nach nächstem Zeichen eine geordnete Ausgabe anzufordern.

verwandte Informationen