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 :

Fusion horizontale de 2 fichiers txt par commande batch [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 26
    Par défaut Fusion horizontale de 2 fichiers txt par commande batch
    Bonjour,
    Je n'ai pas trouvé sur les forums de réponse à ma question.
    Il y a la commande COPY pour fusionner 2 fichiers (file1 + file2) dans un troisième fichier (file3) de façon verticale
    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo off
    copy file1.txt + file2.txt file3.txt
    mais je ne trouve pas la solution pour fusionner les lignes de façon horizontale.
    Je ne sais pas si c'est possible d'ailleurs...
    Je m'explique :
    je voudrai copier chaque ligne du fichier 1 et du fichier 2 et les coller dans un fichier3 horizontalement de la façon suivante :
    ligne1 fichier1 ; ligne1 fichier2
    ligne2 fichier1 ; ligne2 fichier2
    ligne3 fichier1 ; ligne3 fichier2
    ligne4 fichier1 ; ligne4 fichier2
    ......
    Est-ce que quelqu'un a une idée ?
    Merci pour votre aide.

  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
    Par défaut
    salut,

    essaye ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    @echo off
    setlocal enabledelayedexpansion
    
    set /a $c=1
    set /a $c2=1
    
    (for /f "delims=" %%a in (fichier1.txt) do (
       set /a $c2=1
       for /f "delims=" %%b in (fichier2.txt) do (
          if !$c2!==!$c! (
    		echo %%a %%b
    	)
       set /a $c2+=1
    	)
       set /a $c+=1
    )
    )>fichier3.txt

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 26
    Par défaut
    Salut,

    C'est génial !
    C'est exactement ce que je cherchais !

    Merci pour l'aide.

  4. #4
    Membre Expert
    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
    Par défaut
    salut et +1 pour sachadee

    une autre façon pour resoudre le problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    @echo off
    
     set f1=fichier1.txt
     set f2=fichier2.txt
    
     (
       setlocal DisableDelayedExpansion
       for /f "delims=" %%a in (%f1%) do (
          set "f1_line=%%a"
          setlocal EnableDelayedExpansion
           set /p f2_line=
           echo(!f1_line! !f2_line!
          endlocal
       )
       endlocal
     )<%f2%
    si tu veux savoir plus sur cette technique tu peux consulter ce post qui t'aidera à creuser le sujet

  5. #5
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut
    Citation Envoyé par I'm_HERE Voir le message
    une autre façon pour resoudre le problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    @echo off
    
     set f1=fichier1.txt
     set f2=fichier2.txt
    
     (
       setlocal DisableDelayedExpansion
       for /f "delims=" %%a in (%f1%) do (
          set "f1_line=%%a"
          setlocal EnableDelayedExpansion
           set /p f2_line=
           echo(!f1_line! !f2_line!
          endlocal
       )
       endlocal
     )<%f2%
    si tu veux savoir plus sur cette technique tu peux consulter ce post qui t'aidera à creuser le sujet
    +20 ici et dans stackoverflow de ma part !

  6. #6
    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
    Par défaut
    Citation Envoyé par I'm_HERE Voir le message
    salut et +1 pour sachadee

    une autre façon pour resoudre le problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    @echo off
    
     set f1=fichier1.txt
     set f2=fichier2.txt
    
     (
       setlocal DisableDelayedExpansion
       for /f "delims=" %%a in (%f1%) do (
          set "f1_line=%%a"
          setlocal EnableDelayedExpansion
           set /p f2_line=
           echo(!f1_line! !f2_line!
          endlocal
       )
       endlocal
     )<%f2%
    si tu veux savoir plus sur cette technique tu peux consulter ce post qui t'aidera à creuser le sujet
    Un grand salut à toi également et +1 pour ta solution également


  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 26
    Par défaut
    Bonjour,

    Je re-ouvre le sujet car j'ai une nouvelle question.

    Si au lieu d'avoir 2 fichiers .txt j'ai plusieurs .txt dans le même répertoire,
    comment puis-je fusionner (toujours de façon horizontale) tous les *.txt de la ressource en un seul fichier ?

    Merci encore pour votre aide.

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

Discussions similaires

  1. Lire un fichier txt par la fin
    Par afrodje dans le forum Langage
    Réponses: 8
    Dernier message: 30/06/2009, 12h04
  2. Envoi de fichier txt par ligne téléphonique à un PC
    Par rodamz49 dans le forum Général Java
    Réponses: 12
    Dernier message: 28/10/2008, 12h17
  3. Réponses: 11
    Dernier message: 30/08/2007, 09h08
  4. Exportation d'1 fichier txt par une procédure stockée
    Par loutsky dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 15/06/2006, 18h25
  5. Lire un fichier txt par http (C sous Linux)
    Par sleg dans le forum Réseau
    Réponses: 4
    Dernier message: 18/10/2005, 11h07

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