2010-03-04 6 views
152

Comment pouvons-nous obtenir une liste de répertoires récursive sous DOS?Liste de répertoires récursive dans DOS

Je cherche une commande ou un script sous DOS qui peut me donner la liste récursive du répertoire similaire à la commande ls -R sous UNIX.

Répondre

274

Vous pouvez utiliser:

dir /s 

Si vous avez besoin de la liste sans toutes les informations d'en-tête/pied de page, essayez ceci:

dir /s /b 

(Pour que cela fonctionne pour DOS 6 et versions ultérieures, peut-être ont travaillé avant cela, mais je ne me souviens pas)

+7

+1 très pratique. Si vos répertoires contiennent beaucoup de fichiers, cette commande les fera défiler trop rapidement sur l'écran pour les lire. Je pense qu'il est préférable de diriger la sortie de cette commande vers un fichier txt que vous pouvez lire à votre propre rythme. Par exemple (en supposant que le répertoire c: \ temp est créé): dir C: \/s> C: \ temp \ CDirectoryListing.txt –

+0

Vous monsieur, êtes vraiment génial! Ça a marché comme sur des roulettes! Je l'ai utilisé au travail (où nous sommes obligés d'avoir des machines Windows) avec gVIM! Vraiment, vraiment bien! Tu m'as sauvé des heures de mal de tête! – walialu

+0

Pour une raison quelconque, il imprime le chemin absolu complet avec C: \ dossier en face lors de l'utilisation de/S et/B, est-ce que cela est évitable? Je veux seulement le nom de fichier relatif. – lama12345

18

vous pouvez obtenir les paramètres que vous demandez en tapant:.

dir /? 

Pour la liste complète, essayez:

dir /s /b /a:d 
18

dir /s /b /a:d>output.txt sera le port dans un fichier texte

2

Vous pouvez utiliser différentes options avec FINDSTR pour supprimer les lignes ne veulent pas, comme ceci:

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

contient des entrées comme celles-ci:

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

Vous pouvez les supprimer en utilisant les différentes options de filtrage proposées par FINDSTR. Vous pouvez également utiliser l'excellent unxutils, mais il convertit la sortie en UNIX par défaut, donc vous n'obtenez plus CR + LF; FINDSTR offre la meilleure option Windows.

+0

Bien! Mon exigence supplémentaire est de compter toutes les lignes, ce qui est fait avec 'dir/s/b | trouver/v/c "" '. – domih

2

J'aime utiliser ce qui suit pour obtenir une liste bien triés du répertoire courant:

> dir . /s /b sortorder:N 
Questions connexes