La commande «arbre» ​​de Windows trie de manière aléatoire

3

Lorsque j'exécute tree /a /f > output.txtdans la cmd de Windows, j'obtiens une structure de répertoires bien formatée. Mais la liste de répertoires n'est pas dans un ordre particulier. Comment puis-je obtenir que l'arborescence trie les dossiers et les fichiers par ordre alphabétique?

Remarque: j'ai besoin que la sortie soit au format hiérarchique. L'utilisation dirne sera donc probablement pas suffisante. J'ai probablement besoin d'utiliser tree.

Un extrait de la sortie de 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

Notez que les noms de dossier ne sont pas dans l'ordre alphabétique. Ils ne sont pas non plus classés par ordre de date ou de taille modifiée, ni par aucun autre ordre auquel je peux penser.

En outre, il s'agit de l'ordre par défaut que j'obtiens lorsque je cours dirsans spécifier l'ordre de tri.

Ces documents sont accessibles via un lecteur réseau, mais je ne vois pas pourquoi cela ferait une différence. (Bien que lorsque j'exécute une arborescence sur des dossiers locaux, ils semblent être dans l'ordre alphabétique. C'est peut-être un facteur?)

Barry Rosenberg
la source
1
L'arbre est trié alphabétiquement pour moi par défaut (Windows 7). Quelle version de Windows utilisez-vous? Avez-vous un jeu de variables d’environnement DIRCMD personnalisé?
cʜιᴇ007
Utilisation de Windows 7. Je ne vois aucune variable d'environnement appelée DIRCMD.
Barry Rosenberg
Pouvez-vous modifier votre question et ajouter un exemple du résultat obtenu avec Tree?
cʜιᴇ007
1
Il n'y a pas de variable DIRCMD sauf si vous la créez. SETX DIRCMD = / o: n etc. Ce seront alors les options qui s'appliquent par défaut à la commande DIR.
Debra
1
treene prend pas le tri directement de dir. Il utilise son propre findfirstet findnextainsi DIRCMDn'a aucun effet. Cela fonctionne sur la dircommande. Je viens de tester cela avec un serveur Linux où la commande est également foirée. Malheureusement treereste non commandé.
Rik

Réponses:

4

Treeest un programme très simple qui parcourt tous les répertoires (et si spécifié les fichiers). Il ne fait pas de tampon. Vous pouvez le voir car il construit l’arborescence des répertoires directement à l’écran (si la sortie n’est pas redirigée). Avec beaucoup de répertoires, c'est lent et la sortie commence tout de suite.

Parce treeque ne lit pas tous les répertoires à la fois, il ne peut faire aucun tri. Donc, cela dépend du système de fichiers pour présenter les répertoires dans l’ordre. Si le système de fichiers ne le fait pas, treeil ne sera pas commandé.

Si vous voulez une liste ordonnée, vous devrez vous procurer un utilitaire capable de lire tous les répertoires et fichiers à la fois, puis de présenter une vue arborescente ordonnée.

Rik
la source
probablement l'OP utilise FAT32, car avec NTFS la liste sera presque triée
phuclv
3

Il y a deux options que je connais:

  1. Total Commander et son arbre invoqués par AltF10. Ensuite, vous pouvez trouver l’arbre joliment trié dans c: \ Users \ votre_nom_utilisateur \ AppData \ Local \ GHISLER \ dans le fichier treeinfoC.wc. Vous devrez peut-être supprimer les crochets [] puis par un éditeur et sa fonction de remplacement d'expression régulière.
  2. Utilisez la commande console (cmd.exe):

    dir /b /s /ad c:\
    

    qui peut être redirigé vers un fichier par:

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