IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Arborescence filtrée selon extensions de fichiers. [Batch]


Sujet :

Scripts/Batch

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire d'Archivage Médias
    Inscrit en
    Juin 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestionnaire d'Archivage Médias
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2014
    Messages : 7
    Points : 9
    Points
    9
    Par défaut Arborescence filtrée selon extensions de fichiers.
    Bonjour,

    Je cherche à créer un fichier .bat qui me permettrait de :
    1. lister le contenu d'un dossier ainsi que ses sous-dossiers en conservant l'arborescence.
    2. filtrer cette liste en fonction des extensions de fichiers.

    J'arrive facilement à obtenir l'arborescence :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @echo off
    tree /A /F >>Liste_Arborescence.txt
    @echo off
    Mais c'est pour la seconde partie que ça se corse. J'ai plusieurs idées qui pourraient fonctionner, mais que je n'arrive pas à mettre en place.
    - La première possibilité serait de filtrer avec les extensions que je désire avant/pendant la commande tree. Cela serait le top.
    - La seconde possibilité serait de travailler ensuite sur le fichier texte créé, afin de conserver uniquement les lignes avec les extensions qui m'intéressent. Mais dans ce cas-là, j'ai peur de perdre mon arborescence.

    J'arrive à créer un fichier texte avec la liste des fichiers avec une ou plusieurs extensions que je choisis, mais sans arborescence.
    J'arrive à créer un fichier texte avec la liste de tous les fichiers, dossiers et sous-dossiers.

    MAIS impossible de combiner les deux.

    Après avoir passé de nombreuses heures à chercher à droite et à gauche, sans réussir à trouver exactement ce que je cherche, je viens ici chercher de l'aide.

    Merci d'avance à tous ceux et celles qui prendront le temps de lire et m'apporter leurs conseils.

  2. #2
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Salut,

    Un simple :

    Ne fait-il pas l'affaire ?
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire d'Archivage Médias
    Inscrit en
    Juin 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestionnaire d'Archivage Médias
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2014
    Messages : 7
    Points : 9
    Points
    9
    Par défaut
    Bonsoir,

    Alors je suppose que je dois mettre ce
    dir /s *.txt
    quelque-part, parce-que seul il ne sert à rien. Si c'est bien le cas, est-il possible de savoir où précisément s'il-vous-plaît ?

    Merci d'avance.

  4. #4
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Je cherche à créer un fichier .bat qui me permettrait de .....
    Apparemment tu cherches à faire un fichier .Bat.

    Test.bat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @echo off
    dir /s *.txt
    remplace le *.txt par l'extension de ton choix (*.csv,*.exe,...)
    Et si tu veux avoir ça dans un fichier :

    Test.bat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    @echo off
    dir /s *.txt >Sortie.txt
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire d'Archivage Médias
    Inscrit en
    Juin 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestionnaire d'Archivage Médias
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2014
    Messages : 7
    Points : 9
    Points
    9
    Par défaut
    Tout d'abord merci pour cette réponse.

    Cependant, elle ne correspond pas à ce que je cherche à faire, dans le sens où avec cela, je perds ma "jolie" arborescence générée par tree, et que je souhaite conserver.
    Et c'est cet aspect visuel pratique que j'aimerais garder, mais en filtrant pour qu'il n'y ait pas tous les fichiers.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire d'Archivage Médias
    Inscrit en
    Juin 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestionnaire d'Archivage Médias
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2014
    Messages : 7
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Je me permets de poster ce message afin de savoir si personne d'autre n'aurait par hasard de solution à me proposer ?
    Que cela soit en batch ou par n'importe quel moyen qui me permette d'arriver à ce que je souhaite.

    Par avance merci à ceux et/ou celles qui prendraient le temps de me répondre.

    Bonne journée.

  7. #7
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    J'ai dernièrement posté un Vbscript [VBS] Dir2HTML.vbs
    pour générer une liste des fichiers et dossiers en HTML avec arborescence, je ne sais si ça peut vous servir ou non
    mais pas de filtrage

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire d'Archivage Médias
    Inscrit en
    Juin 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestionnaire d'Archivage Médias
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2014
    Messages : 7
    Points : 9
    Points
    9
    Par défaut
    Merci pour ce VBScript qui pourra m'être utiles à d'autres fins, mais dans le cas présent ne répond pas à ma demande de "filtre". Même si l'arborescence est présente.

    C'est l'équivalent amélioré de mon .bat avec la fonction tree, mais avec les liens directs vers les fichiers/dossiers en plus à priori.

    Moi j'aimerais avoir mon arborescence en texte brut, avec tous les dossiers apparents, et juste les types de fichiers dont j'aurais spécifié les extensions.

    Ça vous paraît possible ?

  9. #9
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut Filtrage par extensions

    Testez ce petit batch mais dommage qu'il ne conserve pas les noms des dossiers juste il filtre le résultat de la commande Tree redirigé dans un fichier text
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @echo off
    Title Filtrage par extension by Hackoo
    mode con cols=60 lines=2 & color 9B
    :: ici j'ai choisi le dossier temporaire
    Set Folder=%TMP%
    set /p Ext=saisisez l^'extension a filtrer :
    cls
    echo on filtre suivant l^'extension %Ext%
    Set Log=TreeLog.txt
    Set LogFilter=Filtrer_%Ext%.txt
    Tree %Folder% /a /f > %Log%
    Findstr /r "%Ext%" %Log% > %LogFilter%
    Del %Log%
    Start %LogFilter%

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire d'Archivage Médias
    Inscrit en
    Juin 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestionnaire d'Archivage Médias
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2014
    Messages : 7
    Points : 9
    Points
    9
    Par défaut
    Bonjour Mehdi,

    Merci tout d'abord pour prendre le temps de chercher une solution à mon problème.
    Je l'ai essayée à l'instant, mais je lui trouve deux défauts qui font que cela ne répond toujours pas à mes besoins.

    1. Comme tu l'as dit toi-même, il ne conserve pas les noms des dossiers. Du coup on ne sait pas où sont rangés les fichiers filtrés.

    2. Le filtre ne s'applique à priori pas sur les extensions de fichiers, mais sur les noms de fichiers en eux-mêmes.

    En effet, lorsque je saisis par exemple doc, alors je me retrouve avec tous les documents qui contiennent "doc" dans leurs noms de fichiers. Et qui ne sont pas tous des .doc malgré ça.
    J'ai essayé avec .doc et j'obtiens les mêmes résultats.
    Et si je tente avec *.doc alors j'obtiens un message d'erreur.

    Belle tentative en tous cas. ^^

    Je vais continuer à chercher, mais j'avoue que je commence à désespérer de trouver la solution que je cherche. :/

    N'hésitez surtout pas si vous avez de nouvelles pistes, je prends toujours volontiers.

  11. #11
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    salut,

    t'as au moins deux choix: ou bien recreer la roue et construire ta propre commande tree en utilisant la technique de recursion en pseudo-code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    set path=chemin
    set extensions=*.txt *.exe ...etc
    call :recursion "%chemin%"
    goto :eof
    
    :recusrion
    pushd %1
    echo(%~nx1
    for %%a in (%extensions%) do echo( -- %%a
    for /d %%i in (*) do (
       echo(%%i
       call :recusrion "%%~fi"
    )
    popd
    ou bien parser la commande tree avec findstr:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tree /a /f | findstr /i "\.exe\>  \.txt\> --- "
    les extensions \.exe et \.txt le point doit être échapper pour qu'il soit traiter litteralement

    Bonne chance

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire d'Archivage Médias
    Inscrit en
    Juin 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestionnaire d'Archivage Médias
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2014
    Messages : 7
    Points : 9
    Points
    9
    Par défaut
    Salut Walid,

    Je n'ai pas encore essayé ta première méthode, mais la seconde marche à la perfection pour ce dont j'ai besoin !! *_*

    L'arborescence est recréée, et seuls les fichiers avec les extensions spécifiées apparaissent, c'est Génial !!!!

    Merci mille fois à toi, du fond du coeur !!

    J'essaierai la première méthode également pour mon éducation. En attendant je passe le sujet en résolu.

  13. #13
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    Je n'ai rien fait.. l'idée était de Mehdi..merci à lui sans oublier aussi sachadee qui aide beaucoup dans ce forum.

    Bonne chance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Taille globale selon extension des fichiers
    Par CoeurDeSQL dans le forum Shell et commandes GNU
    Réponses: 14
    Dernier message: 15/04/2013, 16h08
  2. Copie de fichier dans repertoire selon extension
    Par Mut dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/01/2010, 17h12
  3. Réponses: 1
    Dernier message: 08/02/2009, 08h19
  4. Réponses: 3
    Dernier message: 12/01/2009, 20h11
  5. Changer l'icône selon l'extension du fichier
    Par Pierre Fauconnier dans le forum Windows Vista
    Réponses: 2
    Dernier message: 01/06/2008, 14h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo