Batch Copy dans DOS

Résolu
Jul -  
 Jul -
Bonjour,

J'aimerais concaténer des fichiers en DOS, mais en faisant un batch afin qu'il le fasse sur toute une série de fichier.

Pour le faire sur 1 fichier j'utilise la commande
copy header.txt+a1.txt a1_head.txt 


Comment le faire sur tous mes fichiers a2, a3, etc automatiquement. J'ai pensé utilisé un
for
, mais je ne sais pas comment lui dire "prend le deuxième fichier de la liste et fais la commande".

Merci d'avance pour votre aide
Configuration: Windows XP
Firefox 3.0.15

2 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    tu peux faire
    copy header.txt+a*.txt a1_head.txt
    0
    1. Jul
       
      J'ai essayé en faisant
      copy header.txt+a*.txt a*_head.txt


      Mais dans ce cas, il me concatène tous mes fichiers donc il me crée un fichier qui est une concaténation de header, a1, a2, ...

      Moi je voudrais avoir à chaque fois
      - un ficher qui s'appellerait
      a1_head.txt
      , qui serait une concaténation de
      header.txt
      et de
      a1.txt
      ,
      - un autre fichier qui s'appellerait
      a2_head.txt
      , qui serait une concaténation de
      header.txt
      et de
      a2.txt
      ,
      - etc.
      0
      1. Jul > Jul
         
        Je me réponds moi-même puisque j'ai trouvé la solution :

        for %i in (a*.txt) do copy header.txt+%i %ih

        J'obtiendrai alors des fichiers a1.txth, a2.txth, etc qu'il suffira de renomer en .txt
        0
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    alors il faut faire une boucle, l'echo devant le copy va afficher ce qu'il ferait, l'enlever pour exécuter

    @echo off
    setlocal enableDelayedExpansion
    for %%a in (a*.txt) do (
    rem N prend le nom du fichier sans l'extension, a1, a2, ...
    set N=%%~na
    echo copy header.txt+%%a !N!_header.txt)
    0