2010-03-04 6 views
152

Wie erreichen wir rekursive Verzeichnisauflistung in DOS?Rekursive Verzeichnisliste in DOS

Ich bin auf der Suche nach einem Befehl oder einem Skript in DOS, die mir die rekursive Verzeichnisliste ähnlich wie ls -R Befehl in UNIX geben kann.

Antwort

274

können Sie verwenden:

dir /s 

Wenn Sie die Liste ohne alle Kopf-/Fußzeilen Informationen versuchen, diese müssen:

dir /s /b 

(Für sicher, dass dies 6 für DOS arbeiten und später, vielleicht habe vorher gearbeitet, aber ich kann mich nicht erinnern.)

+7

+1 sehr praktisch. Wenn Ihre Verzeichnisse viele Dateien enthalten, scrollt dieser Befehl sie auf dem Bildschirm zu schnell zum Lesen. Ich denke, es ist am besten, die Ausgabe dieses Befehls zu einer txt-Datei zu leiten, die Sie mit Ihrer eigenen Geschwindigkeit lesen können. Zum Beispiel (angenommen, dass das Verzeichnis c: \ temp erstellt wurde): Verzeichnis C: \/s> C: \ temp \ CDverzeichnisListing.txt –

+0

Sie Sir, sind wirklich genial! Es hat funktioniert wie ein Zauber! Ich benutzte es bei der Arbeit (wo wir gezwungen sind Windows-Maschinen zu haben) mit gVIM! Wirklich, wirklich gut! Du hast mir stundenlange Kopfschmerzen erspart! – walialu

+0

Aus irgendeinem Grund gibt es den vollständigen absoluten Pfad mit C: \ Ordner vor, wenn/S und/B verwendet wird, ist das vermeidbar? Ich möchte nur den relativen Dateinamen. – lama12345

18

Sie können die Parameter erhalten, die Sie verlangen, indem Sie eingeben:

dir /? 

Für die vollständige Liste, versuchen:

dir /s /b /a:d 
18

dir /s /b /a:d>output.txt wird Port in eine Textdatei

2

Sie verschiedene Optionen mit FINDSTR verwenden können, um die Linien zu entfernen, nicht wollen, etwa so:

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

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 mit den verschiedenen von FINDSTR angebotenen Filteroptionen entfernen. Sie können auch die exzellenten Unxutils verwenden, aber die Ausgabe wird standardmäßig in UNIX konvertiert, sodass Sie nicht mehr CR + LF erhalten; FINDSTR bietet die beste Windows-Option.

+0

Schön! Meine zusätzliche Anforderung besteht darin, alle Zeilen zu zählen, was mit 'dir/s/b | geschieht finde/v/c "" '. – domih

2

Ich mag die folgenden verwenden, um eine gut sortierte Auflistung des aktuellen Verzeichnisses zu erhalten:

> dir . /s /b sortorder:N