Batch Copy dans DOS

Résolu
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. Contributeur
    hello
    tu peux faire
    copy header.txt+a*.txt a1_head.txt
    1. 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.
    2. @JulJe 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
  2. Contributeur
    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)