Kiedy uruchamiam tree /a /f > output.txt
w 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 dir
prawdopodobnie 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 dir
bez 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?)
źródło
tree
nie pobiera sortowania bezpośrednio zdir
. Wykorzystuje on swój własnyfindfirst
ifindnext
takDIRCMD
nie ma znaczenia. Działa nadir
polecenie. Właśnie przetestowałem to na serwerze z systemem Linux, na którym zamówienie jest również pomieszane. Niestetytree
pozostaje bez zamówienia.Odpowiedzi:
Tree
to 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ż
tree
nie 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,tree
nie 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.
źródło
Istnieją dwie znane mi opcje:
Użyj polecenia konsoli (cmd.exe):
który może zostać przekierowany do pliku przez:
źródło