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

Windows Discussion :

[Batch] Concatenation dans une boucle


Sujet :

Windows

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2005
    Messages : 159
    Points : 108
    Points
    108
    Par défaut [Batch] Concatenation dans une boucle
    Bonjour à tous.

    Je cherche à faire un batch qui liste tous les fichiers d'un répertoire et qui les concatene dans une variable en ajoutant des guillement au début et à la fin.

    Par exemple, si dans mon dossier j'ai:
    file1.txt
    file2.txt
    file3.txt
    Je veux qu'il me sorte :
    list="file1.txt" "file2.txt" "file3.txt"

    Pour l'instant j'ai ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    dir /a:-d /o:-e /b >> list.txt
    set li
    for /f "delims=" %%i in ('type "list.txt"') do (
    set li=%li%"%%i" 
    ) 
    echo %li%
    del list.txt
    pause
    Le problème c'est qu'il ne m'affiche que le dernier fichier de la liste. Est-ce que quelqu'un voit où est l'erreur ?

    Merci d'avance
    Mad

    Ps: le but de ce batch est de pouvoir jouer tous les fichiers d'un dossier avec vlc en le lançant en ligne de commande (quel que soit le nombre de fichiers dans le dossier), sans avoir à ouvrir vlc et faire "ouvir repertoire...", etc. Si quelqu'un a une meilleure idée que le batch, je suis aussi preneur ;-)

  2. #2
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Tu ne veut que les noms de fichier ? pas les chemin complet ?
    Si oui voici un début:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for /r "%source%\" %%i in (*.*) do call :traite
    
    :traite
    set VarTest=%VarTest%%%~nx1
    
    echo %VarTest%
    Bien sur remplace %source% par le chemin de ton répertoire ou sont stocker tes fichiers.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2005
    Messages : 159
    Points : 108
    Points
    108
    Par défaut
    Merci pour ta réponse.

    J'ai testé ton code, mais j'obtiens ça "%~nx1%~nx1%~nx1"
    en bref, autant de %~nx1 qu'il n'y a de fichiers.

    ça correspond à quoi exactement ~nx1 ?

    D'un côté au moins ça concatène, c'est déjà un pas en avant Je vais me renseigner sur la commande "for /r "%source%\" %%i in (*.*) do call :traite"

  4. #4
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    J'ai coriger:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for /r "%source%\" %%i in (*.*) do set VarTst=%%~nxi& call :traite
    
    :traite
    set VarTest=%VarTest%"%VarTst%"
    
    echo %VarTest%

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2005
    Messages : 159
    Points : 108
    Points
    108
    Par défaut
    Ok merci, ça marche nickel !

  6. #6
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    De rien

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/04/2010, 12h05
  2. [BATCH] DOS, déplacement de fichier dans une boucle FOR
    Par nicoga dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 14/11/2008, 14h36
  3. Concatenation du numero d'iteration dans une boucle
    Par C.R.E.A.M dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/07/2007, 14h37
  4. [batch] incrémentation dans une boucle for
    Par bart64 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 08/09/2004, 20h05
  5. Pause dans une boucle
    Par HT dans le forum Langage
    Réponses: 4
    Dernier message: 03/06/2003, 08h52

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