Standardreihenfolge der Datei "dir" in der Windows-Konsole

1190
Moe Sisko

Ich frage mich nur, wie Windows die Reihenfolge der Dateien festlegt, wenn ein dirBefehl (ohne Argumente) in einer Eingabeaufforderung ausgeführt wird.

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

Der Grund ist, dass ich eine Heim-Stereoanlage habe, die Songs von einem USB-Laufwerk lesen kann, und es scheint, dass die Songs in der gleichen Reihenfolge wiedergegeben werden, in der sie dirangezeigt werden, wenn ich einen Befehl an einer Windows XP-Eingabeaufforderung ausführte. Wenn ich herausfinden kann, wie die Reihenfolge in einem Vanille- dirBefehl funktioniert, kann ich möglicherweise die Wiedergabereihenfolge der Songs auf der Stereoanlage steuern, indem bestimmte Attribute der Dateien geändert werden

1
Welche Windows-Version? Welches Dateisystem auf Ihrem USB-Laufwerk. Mein "dir" listet in alphabetischer Reihenfolge auf. David Heffernan vor 11 Jahren 1
@ David: Gleiches für mich in meinem Win7Home abatishchev vor 11 Jahren 0
@ DavidHeffernan: Windows XP. USB ist FAT-formatiert. Moe Sisko vor 11 Jahren 0

2 Antworten auf die Frage

3
Maximus

dir(ohne Argumente) Der Befehl zeigt Dateien / Verzeichnisse immer unsortiert an, dh in derselben Reihenfolge, wie sich Dateien / Verzeichnisse auf der Festplatte befinden. Das NTFS-Dateisystem "sortiert" Dateien / Verzeichnisse intern (vereinfachend).

Sie können zwar Dateien nacheinander kopieren, um eine bevorzugte Sortierung auf Ihrem Player zu erreichen.

2
phuclv

Laut Microsoft- dirDokumentation (Schwerpunkt mein)

/o [[:]SortOrder]: Steuert die Reihenfolge, in der dirVerzeichnisnamen und Dateinamen sortiert werden. Wenn Sie keine Angaben machen /o, dirwerden die Namen in der Reihenfolge angezeigt, in der sie im Verzeichnis vorkommen . Wenn Sie /oohne Angabe verwenden SortOrder, dirwerden die Namen der Verzeichnisse in alphabetischer Reihenfolge und dann die Namen der Dateien in alphabetischer Reihenfolge angezeigt. Der Doppelpunkt ( :) ist optional.

Die Reihenfolge, in der Dateien in einem Verzeichnis vorkommen, hängt vom Dateisystem und davon ab, wie Dateilisten in einem Verzeichniseintrag gespeichert werden.

  • In FAT12 / 16/32 ist die Dateizuordnungstabelle nur eine einfache lineare Liste. Wenn eine neue Datei erstellt wird, wird sie einfach in ein leeres Feld in der Liste gestellt. Je nach Erstellungs- und Löschzustand kann die Listenreihenfolge variieren.
  • Im NTFS-Verzeichnis werden die Einträge in einer B-Baumstruktur gespeichert. Das Ergebnis ist also eine fast sortierte Liste

Weitere Informationen zu Raymond Chens In welcher Reihenfolge DIRordnet der Befehl Dateien an, wenn keine Sortierreihenfolge angegeben ist?

Wenn Sie keine Sortierreihenfolge angeben, DIRlistetFind­First­File der Befehl die Dateien in der Reihenfolge auf, in der die Dateien von der Funktion zurückgegeben werden .

Ähm, okay, aber das bringt die Frage auf die nächste Ebene: Welche Reihenfolge gibt Find­First­FileDateien zurück?

Die Reihenfolge, in der Find­First­FileDateien in nicht angegeben zurückgegeben werden. Es bleibt dem Dateisystemtreiber überlassen, die Dateien in der Reihenfolge zurückzugeben, in der sie am bequemsten sind.

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-formatiertes USB-USB-Laufwerk ist, werden die Dateien in einer komplexen Reihenfolge aufgelistet, basierend auf der Reihenfolge, in der Dateien erstellt und gelöscht werden, und der Länge ihrer Namen. Der einfachste Ausweg besteht jedoch darin, alle Dateien aus einem Verzeichnis zu entfernen und dann die Dateien in der gewünschten Reihenfolge in das Verzeichnis zu verschieben. Auf diese Weise befindet sich der erste verfügbare Steckplatz am Ende des Verzeichnisses, sodass der Dateieintrag angehängt wird.

Es gibt jedoch viele Werkzeuge, die zu diesem Zweck hergestellt werden