Вывод дерева в командной строке
Я надеялся, что смогу использовать
tree /F /A > "desktop"\file.txt
для вывода только текстовых файлов. В настоящее время как есть, он выводит каждое расширение файла.
Кто-нибудь знает, как легко это сделать?
Ответы
Ответ 1
Tree
принимает только несколько параметров командной строки:
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.
Ни один из указанных параметров не является файловой маской или фильтром.
Вы можете использовать dir
с соответствующими переключателями и перенаправить вывод в текстовый файл. Вы получите полное имя пути к файлам, но вы можете отфильтровать это при последующей обработке, если необходимо, с циклом for
:
C:\>dir *.txt /s /b > filelist.txt
Ответ 2
На самом деле не так сложно получить желаемый вывод TREE, используя регулярные выражения FINDSTR.: -)
tree /f /a | findstr /ri /c:"^[^| ]" /c:"^[| ]*[+\\]" /c:"\.txt$"
Ответ 3
Примечание: команда tree
не упорядочивает вывод по имени!
Вместо этого вы можете использовать этот подход:
dir /b /s /ad /on c:\ > c:\file.txt
Результат выглядит менее приятным, но
ссылка
это решение найдено на Superuser by pbies
Ответ 4
Simpler.
Вам просто нужно экспортировать результат следующим образом:
tree /a /f >"toto.rtf"
Затем вы открываете файл в Word и выбираете MS DOS
convert.