O comando “árvore” do Windows classifica aleatoriamente

3

Quando executo tree /a /f > output.txt no cmd do Windows, obtenho uma estrutura de diretório bem formatada. Mas a listagem do diretório não está em nenhuma ordem específica. Como posso fazer com que a árvore ordene pastas e arquivos em ordem alfabética?

Nota: Preciso da saída formatada como uma hierarquia, portanto, usar dir provavelmente não será suficiente. Eu provavelmente preciso usar tree .

Um trecho da saída da árvore

+---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

Observe que os nomes das pastas não estão em ordem alfabética. Eles também não estão em ordem de data ou tamanho modificado, ou qualquer outra ordem em que eu possa pensar.

Além disso, esta é a ordem padrão que recebo quando executo dir sem especificar a ordem de classificação.

Esses documentos estão sendo acessados por uma unidade de rede, mas não vejo por que isso deve fazer a diferença. (Embora quando eu corro árvore em pastas locais, eles parecem estar em ordem alfabética. Talvez isso seja realmente um fator?)

    
por Barry Rosenberg 01.10.2013 / 19:44

2 respostas

4

Tree é um programa muito simples que percorre todos os diretórios (e se especificou os arquivos). Não faz buffer. Você pode ver isso porque ele cria a árvore de diretórios diretamente na tela (se a saída não for redirecionada). Com muitos diretórios, isso é lento e a saída começa imediatamente.

Como tree não lê todos os diretórios de uma só vez, não pode fazer nenhuma classificação. Portanto, depende do sistema de arquivos apresentar os diretórios em ordem. Se o sistema de arquivos não fizer isso, tree não será solicitado.

Se você quiser uma lista ordenada, terá que procurar um utilitário que possa ler todo o diretório e os arquivos de uma só vez e, em seguida, apresentar uma visualização ordenada em forma de árvore.

    
por 02.10.2013 / 00:28
3

Existem duas opções conhecidas por mim:

  1. Total Commander e sua árvore invocada por Alt F10 . Então você pode encontrar a árvore bem ordenada em c: \ Usuários \ seu_usuário \ AppData \ Local \ GHISLER \ no arquivo treeinfoC.wc. Talvez seja necessário remover os colchetes [] de algum editor e sua função de substituição da expressão regular.
  2. Use o comando console (cmd.exe):

    dir /b /s /ad c:\
    

    que pode ser redirecionado para um arquivo por:

    dir /b /s /ad c:\ > c:\all_c_drive_folders.txt
    
por 19.02.2014 / 01:42