3

Когда я запускаю tree /a /f > output.txt в Windows cmd, я получаю хорошо отформатированную структуру каталогов. Но список каталогов не в каком-то определенном порядке. Как мне заставить дерево сортировать папки и файлы в алфавитном порядке?

Примечание: мне нужно, чтобы выходные данные были отформатированы в виде иерархии, поэтому использование dir , вероятно, будет недостаточно. Мне, вероятно, нужно использовать tree .

Выдержка из вывода дерева

+---HCM Documents
|   +---Interfaces
|   +---Process Flows
|   +---Workshops
|   |   \---Overviews
|   +---Approvals
|   +---Requirements
|   \---Misc
+---Testing Documents
+---Communications
|   +---Statuses 
|   +---Meeting Minutes 
+---Finance Documents
|   +---Taxes
|   +---General Ledger
|   +---Business
|   +---Process Flows
|   +---Purchases
|   \---Workshops
+---Unfiled
+---Infrastructure Documents
+---Financials
|   +---Issue and Risk Log
|   +---Timelines
|   +---Templates
|   \---Decisions Log

Обратите внимание, что имена папок не в алфавитном порядке. Они также не в порядке изменения даты или размера или любого другого порядка, о котором я могу думать.

Кроме того, это порядок по умолчанию, который я получаю при запуске dir без указания порядка сортировки.

Эти документы доступны через сетевой диск, но я не понимаю, почему это должно иметь значение. (Хотя, когда я запускаю дерево в локальных папках, они кажутся в алфавитном порядке. Возможно, это на самом деле фактор?)

2 ответа2

4

Tree - очень простая программа, которая перебирает все каталоги (и, если указаны файлы). Это не делает буферизацию. Вы можете видеть это, потому что он строит дерево каталогов непосредственно на экране (если выходные данные не перенаправлены). При большом количестве каталогов это происходит медленно, и вывод начинается сразу же.

Поскольку tree не читает все каталоги одновременно, оно не может выполнять сортировку. Таким образом, от файловой системы зависит представление каталогов по порядку. Если файловая система не делает этого, tree не будет упорядочено.

Если вы хотите упорядоченный список, вам нужно обратиться к утилите, которая может прочитать все каталоги и файлы одновременно, а затем представить упорядоченное древовидное представление.

3

Есть два известных мне варианта:

  1. Total Commander и его дерево, вызываемое Alt F10. Затем вы можете найти дерево, красиво отсортированное в каталоге c:\Users\your_username\AppData\Local\GHISLER\ в файле treeinfoC.wc. Вам может потребоваться убрать скобки [], а затем каким-нибудь редактором и его функцией замены регулярного выражения.
  2. Используйте консоль (cmd.exe):

    dir /b /s /ad c:\
    

    который может быть перенаправлен в файл:

    dir /b /s /ad c:\ > c:\all_c_drive_folders.txt
    

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .