web-dev-qa-db-fra.com

Sortie de l'arborescence dans l'invite de commande

J'espérais pouvoir utiliser le

tree /F /A > "desktop"\file.txt

pour afficher uniquement les fichiers texte. Actuellement tel quel, il génère chaque extension de fichier.

Quelqu'un connaît-il un moyen facile de le faire?

30
trippedoutfish

Tree n'accepte que quelques paramètres de ligne de commande:

c:\>Tree /?
Graphically displays the folder structure of a drive or path.

TREE [drive:][path] [/F] [/A]

   /F   Display the names of the files in each folder.
   /A   Use ASCII instead of extended characters.

Aucun des paramètres indiqués n'est un masque de fichier ou un filtre.

Vous pouvez utiliser dir avec les commutateurs appropriés et rediriger la sortie vers un fichier texte. Vous obtiendrez le nom complet du chemin d'accès aux fichiers, mais vous pouvez le filtrer lors d'un traitement ultérieur si nécessaire avec une boucle for:

C:\>dir *.txt /s /b > filelist.txt
41
Ken White

En fait, il n'est pas si difficile d'obtenir la sortie TREE souhaitée à l'aide des expressions régulières FINDSTR. :-)

tree /f /a | findstr /ri /c:"^[^| ]" /c:"^[| ]*[+\\]" /c:"\.txt$"
11
dbenham

Remarque: cette commande tree ne trie pas la sortie par nom!

Au lieu de cela, vous pouvez utiliser cette approche:

dir /b /s /ad /on c:\ > c:\file.txt

Le résultat ressemble moins à Nice mais

référence

cette solution trouvée sur Superuser par pbies

3
user669677

Autre option simple: allez dans le répertoire que vous souhaitez lister, saisissez CMD pour être déjà au bon endroit, puis:

tree/a /f>"output.doc "

Cela le mettra dans un document Word, plus facile à modifier et à formater à partir de là.

1
user9964468