Polecenie „drzewa” systemu Windows sortuje losowo

3

Kiedy uruchamiam tree /a /f > output.txtw cmd Windows, otrzymuję ładnie sformatowaną strukturę katalogów. Ale lista katalogów nie jest w określonej kolejności. Jak sprawić, by drzewo sortowało foldery i pliki w kolejności alfabetycznej?

Uwaga: Potrzebuję sformatować dane wyjściowe jako hierarchię, więc użycie dirprawdopodobnie nie będzie wystarczające. Prawdopodobnie muszę użyć tree.

Fragment wyników drzewa

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

Pamiętaj, że nazwy folderów nie są uporządkowane alfabetycznie. Nie są one również uporządkowane według zmodyfikowanej daty ani rozmiaru, ani żadnego innego porządku, jaki mogę wymyślić.

Jest to również domyślna kolejność, którą otrzymuję, gdy uruchamiam dirbez określania kolejności sortowania.

Do tych dokumentów można uzyskać dostęp za pośrednictwem dysku sieciowego, ale nie rozumiem, dlaczego to miało coś zmienić. (Chociaż kiedy uruchamiam drzewo w lokalnych folderach, wydają się być w kolejności alfabetycznej. Być może jest to rzeczywiście czynnik?)

Barry Rosenberg
źródło
1
Drzewo domyślnie sortuje dla mnie alfabetycznie (Windows 7). Jakiej wersji systemu Windows używasz? Czy masz niestandardowy zestaw zmiennych środowiskowych DIRCMD?
ᴇcʜιᴇ007
za pomocą systemu Windows 7. Nie widzę żadnej zmiennej środowiskowej o nazwie DIRCMD.
Barry Rosenberg
Czy możesz edytować swoje pytanie i dodać przykład danych wyjściowych z drzewa?
Ƭᴇcʜιᴇ007
1
Nie ma zmiennej DIRCMD, chyba że ją utworzysz. SETX DIRCMD = / o: n itd. Będzie to wtedy opcja (opcje) domyślnie stosowane do polecenia DIR.
Debra
1
treenie pobiera sortowania bezpośrednio z dir. Wykorzystuje on swój własny findfirsti findnexttak DIRCMDnie ma znaczenia. Działa na dirpolecenie. Właśnie przetestowałem to na serwerze z systemem Linux, na którym zamówienie jest również pomieszane. Niestety treepozostaje bez zamówienia.
Rik

Odpowiedzi:

4

Treeto bardzo prosty program, który zapętla wszystkie katalogi (i jeśli określono pliki). Nie buforuje. Możesz to zobaczyć, ponieważ buduje ono drzewo katalogów bezpośrednio na ekranie (jeśli dane wyjściowe nie są przekierowywane). Przy wielu katalogach jest to powolne, a produkcja zaczyna się od razu.

Ponieważ treenie odczytuje wszystkich katalogów naraz, nie można sortować. Tak więc to zależy od systemu plików, aby prezentować katalogi w kolejności. Jeśli system plików tego nie zrobi, treenie zostanie zamówiony.

Jeśli chcesz uporządkować listę, musisz wybrać narzędzie, które może odczytać cały katalog i pliki jednocześnie, a następnie zaprezentować uporządkowany widok podobny do drzewa.

Rik
źródło
prawdopodobnie OP używa FAT32, ponieważ w NTFS lista będzie prawie posortowana
phuclv
3

Istnieją dwie znane mi opcje:

  1. Total Commander i jego drzewo wywoływane przez AltF10. Następnie możesz znaleźć drzewo ładnie posortowane w folderze c: \ Users \ twoja_nazwa_użytkownika \ AppData \ Local \ GHISLER \ w pliku treeinfoC.wc. Może być konieczne usunięcie nawiasów [], a następnie edytora i funkcji zastępowania wyrażeń regularnych.
  2. Użyj polecenia konsoli (cmd.exe):

    dir /b /s /ad c:\
    

    który może zostać przekierowany do pliku przez:

    dir /b /s /ad c:\ > c:\all_c_drive_folders.txt
    
pbies
źródło