Rekursive Verzeichnisliste unter DOS

201

Wie erreichen wir eine rekursive Verzeichnisliste unter DOS?

Ich suche nach einem Befehl oder einem Skript unter DOS, das mir die rekursive Verzeichnisliste ähnlich dem ls -RBefehl unter Unix geben kann.

StarDotStar
quelle

Antworten:

361

Sie können verwenden:

dir /s

Wenn Sie die Liste ohne alle Kopf- / Fußzeileninformationen benötigen, versuchen Sie Folgendes:

dir /s /b

(Dies wird sicher unter DOS 6 und höher funktionieren. Möglicherweise hat es vorher funktioniert, aber ich kann mich nicht erinnern.)

Michael Todd
quelle
7
+1 sehr praktisch. Wenn Ihre Verzeichnisse viele Dateien enthalten, werden sie mit diesem Befehl zu schnell auf dem Bildschirm angezeigt, um gelesen zu werden. Ich denke, es ist am besten, die Ausgabe dieses Befehls in eine txt-Datei zu leiten, die Sie mit Ihrer eigenen Geschwindigkeit lesen können. Zum Beispiel (vorausgesetzt, das Verzeichnis c: \ temp wird erstellt): dir C: \ / s> C: \ temp \ CDirectoryListing.txt
Steven Magana-Zook
Sie, Sir, sind wirklich großartig! Es hat wie ein Zauber funktioniert! Ich habe es bei der Arbeit (wo wir gezwungen sind, Windows-Maschinen zu haben) mit gVIM verwendet! Wirklich sehr, sehr gut! Du hast mir Stunden Kopfschmerzen erspart!
Walialu
Aus irgendeinem Grund wird bei Verwendung von / S und / B der vollständige absolute Pfad mit dem Ordner C: \ gedruckt. Ist dies vermeidbar? Ich möchte nur den relativen Dateinamen.
lama12345
2
Ja, funktioniert perfekt mit Suchen / Ersetzen von "C: / Ordner" und Ersetzen durch "".
Lama12345
22
Nur um hinzuzufügen: tree /fgibt dem Auge eine angenehme Darstellung :-)
arun
25

dir /s /b /a:d>output.txt portiert es in eine Textdatei

Tribrach
quelle
23

Sie können die gewünschten Parameter abrufen, indem Sie Folgendes eingeben:

dir /?

Versuchen Sie für die vollständige Liste:

dir /s /b /a:d
Fortius
quelle
3

Sie können mit FINDSTR verschiedene Optionen verwenden, um die nicht gewünschten Zeilen zu entfernen:

DIR /S | FINDSTR "\-" | FINDSTR /VI DIR

Die normale Ausgabe enthält Einträge wie diese:

28-Aug-14  05:14 PM    <DIR>          .
28-Aug-14  05:14 PM    <DIR>          ..

Sie können diese mithilfe der verschiedenen Filteroptionen von FINDSTR entfernen. Sie können auch die hervorragenden Unxutils verwenden, aber die Ausgabe wird standardmäßig in UNIX konvertiert, sodass Sie CR + LF nicht mehr erhalten. FINDSTR bietet die beste Windows-Option.

Zeinab Qureshi
quelle
Nett! Meine zusätzliche Anforderung besteht darin, alle Zeilen zu zählen, was erledigt ist dir /s /b | find /v /c "".
Domih
3

Ich möchte Folgendes verwenden, um eine gut sortierte Liste des aktuellen Verzeichnisses zu erhalten:

> dir . /s /b sortorder:N
Liebe und Frieden - Joe Codeswell
quelle