ms-dosJe suis un inconditionnel du batch file. Mais oui, rappelez-vous, ces petits fichiers .bat qu’on écrivait sous DOS pour lancer nos jeux plus facilement. Ou alors sous Windows pour enchaîner des actions répétitives.

Et bien ces fichiers .bat, je les utilise quotidiennement tout simplement parce qu’ils facilitent la vie.

Aujourd’hui, je vous montre comment extraire la liste des noms de tous les fichiers présents dans un répertoire avec une seule petite ligne de DOS, avec la commande DIR suivie de quelques arguments.

Méthode 1 : lister les fichiers présents dans un répertoire

Qui n’a jamais eu besoin de sauvegarder ou de diffuser la liste des fichiers contenus dans un répertoire ? Et bien sachez que Windows n’offre pas cette possibilité en deux clics de souris. C’est ballot. Surtout qu’avec DOS, hop, cela se fait très rapidement :

  1. créez un fichier .bat – que nous appellerons liste.bat pour l’exemple.
  2. ajoutez ce bout de code :
    dir c:\temp /A /B /O:GEN > c:\filelist.txt
  3. sauvegarder et lancez le fichier bat. Un nouveau fichier sera créé (filelist.txt) sous C: contenant la liste des fichiers présents dans le répertoire c:\temp.

Explications

La fonction DIR permet de lister le contenu d’un répertoire dans une fenêtre DOS. Voici les attributs que nous avons utilisé :

/A : affiche tous les fichiers (All).
/B : affiche uniquement les noms des fichiers sur une seule colonne (Bare format) .
/O:GEN : tri par dossiers (Group folders first), extension (file Extension) et nom (Name).

> filelist.txt : permet bien sûr de sauvegarder le résultat de la requête dans un fichier au lieu de l’imprimer à l’écran.

Méthode 2 : lister les fichiers présents dans un répertoire en affichant l’arborescence

BoZo vient de nous faire part d’une autre manière d’obtenir le même résultat mais en ayant en plus le schéma de l’arborescence du répertoire. On utilise cette fois la commande TREE :

tree c:\temp /A /F > c:\filelist.txt

/A : affiche l’encodage ASCII au lieu des caractères étendus (les caractères graphiques sont remplacés par des lettres).
/F : affiche les noms des fichiers de chaque répertoire.

> c:\filelist.txt : permet toujours de sauvegarder le résultat de la requête dans un fichier au lieu de l’imprimer à l’écran.

Voilà, c’est un bout de code toujours utile, à garder sous le coude.

Vous souhaitez réaliser un nouveau projet WordPress ou WooCommerce, ou ajouter de nouvelles fonctionnalités? Ou améliorer les performances de votre site?

Parlons de votre projet »

Articles en rapport:

Matt
Author

Matt est formateur, développeur expert WordPress et WooCommerce, et administrateur réseau chez Codeable.

13 Comments

  1. Avatar

    Salut !

    Pour lister plus efficacement et sans problème d’accentuation un répertoire je vous propose d’essayer mon application Windows « Lister un dossier« .

    Cela fait un petit peu plus d’un mois que je travail dessus et je l’améliore en permanence mais c’est mon tout premier projet de programmation alors n’hésitez pas à me signaler des bugs si vous en voyez !

    ++

  2. Avatar

    Super, c’est presque pile poil ce que je cherchais. En tout cas ça me sort une grosse épine du pied.
    J’aurais voulu savoir s’il existait un moyen d’obtenir la taille des fichiers listés dans le fichier texte généré?
    Encore merci ;)

  3. Avatar

    Oups…il suffit que je poste ça pour me rendre compte que ça fonctionne en fait, j’avais juste pas vu que le fichier était créé à la racine de C alors que je le cherchais dans le même dossier…désolé !

  4. Avatar

    Salut,

    Est-ce que c’est censé fonctionner sous Windows Seven ? Parce que chez moi ça ne marque pas on dirait.

  5. Avatar
    space cowboy Reply

    @agatzebluz : Pour que tu retrouves tes accents tels qu’ils étaient, il suffit d’ouvrir le fichier .txt avec Word et lui dire d’utiliser l’encodage MS-DOS, et c’est réglé.

  6. Matt
    Matt Reply

    @agat’ : tu as raison, j’ai modifié le code pour la cohérence.
    Pas d’autres à partager pour le moment, je les écrit selon mes besoins.

  7. Avatar

    @ Matt : c’est XP qui m’a créé ce dossier avec des accents … et oui j’en ai parfois, en français il arrive que ce soit utile :-)

    Sinon pour la deuxième commande, j’ai du la modifier car ça ne marchait pas sur mon poste (au boulot). Et pour rester homogène, si j’étais toi je mettrai un chemin dans les deux exemples ou pas du tout, ce serait plus cohérent. J’ai du m’y reprendre à deux fois pour voir que c’était \C qui était « visé » dans le 2ème.
    Donc j’ai modifié le script en conséquence et ça marche très bien.

    Effectivement ce sont deux petits bat à garder sous le coude.
    Tu en as d’autres à partager comme ça ?

  8. Matt
    Matt Reply

    Ah excellent BoZo ! Je n’avais encore jamais utilisé TREE, c’est vraiment pas mal d’avoir l’arborescence en plus. Je vais le rajouter à l’article.

  9. Avatar

    Et la commande tree ?

    Affiche graphiquement la structure de dossiers d’un lecteur ou d’un chemin.

    TREE [lecteur:][chemin] [/F] [/A]

    /F Affiche le nom des fichiers de chaque répertoire.
    /A Utilise ASCII au lieu des caractères étendus.

    Avec une redirection comme tu l’indiques vers un fichier txt…

    • Avatar

      Bjr ! L’opération fonctionne. Mais je tente avec des fichiers ayant des caractères russes ou hébreux. Du coup là non ^^ Que faire?
      J’ai les langues installée sur PC windows10, les utilise dans les logiciels normalement, et ais même essayer la commande /a /o:gen > liste.doc pour que ça ressorte sur word. Mais le résultat est mauvais, je n’ai que des ???? à la place des lettres russes.

  10. Matt
    Matt Reply

    agat’, tu a des accents dans tes noms de fichiers/dossiers ? C’est un peu étrange non ?
    J’ai gardé la vieille nomenclature 8.3 pour les noms de fichiers.

  11. Avatar

    Ça marche super. Merci pour le truc.
    Juste deux remarques : il prend aussi les répertoires, ce qui me plait.
    Il n’aime pas les accents en tous les cas sur mon poste de travail.

Écrire un commentaire

Rapport de faute d’orthographe

Le texte suivant sera envoyé à nos rédacteurs :