Elenco di directory ricorsive in DOS


201

Come possiamo ottenere un elenco ricorsivo di directory in DOS?

Sto cercando un comando o uno script in DOS che mi possa dare un elenco ricorsivo di directory simile a ls -R comando in Unix.

Risposte:


361

Puoi usare:

dir /s

Se hai bisogno dell'elenco senza tutte le informazioni di intestazione / piè di pagina prova questo:

dir /s /b

(Di sicuro funzionerà per DOS 6 e versioni successive; potrebbe aver funzionato prima, ma non ricordo.)


7
+1 molto utile. Se le tue directory contengono molti file, questo comando li scorrerà sullo schermo troppo velocemente per leggerli. Penso che sia meglio collegare l'output di questo comando a un file txt che puoi leggere alla tua velocità. Ad esempio (supponendo che venga creata la directory c: \ temp): dir C: \ / s> C: \ temp \ CDirectoryListing.txt
Steven Magana-Zook,

Signore, siete davvero fantastici! Ha funzionato come un fascino! L'ho usato al lavoro (dove siamo costretti ad avere macchine Windows) con gVIM! Davvero molto bene! Mi hai risparmiato ore di mal di testa!
Walialu,

Per qualche motivo stampa l'intero percorso assoluto con la cartella C: \ in primo piano quando si utilizza / S e / B, è prevenibile? Voglio solo il nome file relativo.
lama12345,

2
Sì, funziona perfettamente con Cerca / Sostituisci "C: / cartella" e sostituisci con "".
lama12345,

22
Solo per aggiungere: tree /fdà una piacevole visualizzazione per gli occhi :-)
Arun

25

dir /s /b /a:d>output.txt lo porterà su un file di testo


23

Puoi ottenere i parametri che stai chiedendo digitando:

dir /?

Per l'elenco completo, prova:

dir /s /b /a:d

3

È possibile utilizzare varie opzioni con FINDSTR per rimuovere le righe non desiderate, in questo modo:

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

L'output normale contiene voci come queste:

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

Puoi rimuoverli utilizzando le varie opzioni di filtro offerte da FINDSTR. Puoi anche usare gli eccellenti unxutils, ma converte l'output in UNIX per impostazione predefinita, quindi non ottieni più CR + LF; FINDSTR offre la migliore opzione per Windows.


Bello! Il mio ulteriore requisito è contare tutte le righe, che è fatto con dir /s /b | find /v /c "".
domih,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.