Choisir - Copier - Incrementer

Résolu
Bonjour,

Je cherche de l'aide afin de créer un script BATCH (.bat) afin de copier un fichier précis, un nombre de fois défini.

Voici mon script actuellement :

@echo off
TITLE Programme automatique de copie avec incrementation
color 2
color 6f
mode con:cols=65 lines=41
echo °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
echo °     Programme automatique de copie avec incrementation    °  
echo °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
CHDIR
:1
echo °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
echo ° 1/3 QUEL EST LE NOM DU PREMIER FICHIER A REPETER ?        °
echo ° EXEMPLE : FICHIER 1 (SANS EXTENSION!)                     °
echo °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
ECHO.
set /p nom=
ECHO.
echo °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
echo ° 2/3 QUEL EST L'EXTENSION DU PREMIER FICHIER A REPETER ?   °   
echo ° EXEMPLE : txt (sans le point..)                           °
echo °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
ECHO.
set /p ext=
ECHO.
IF EXIST %nom%.%ext% (
echo Fichier trouvé!
ECHO.
goto :2
) ELSE (
echo Fichier non trouve veuillez recommencer
goto :1
)
:2
echo °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
echo ° Combien de fois ?                                                 °
echo °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
set /p combien=
set /a combien+1=1

set /a i=i+1
COPY %nom%.%ext% > %nom%2.%ext%


echo °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
echo ° Yesssss! Tout est OK...                                   °
echo °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
pause


C'est à la fin sur l'opération que ne n'y arrive pas...

J'ai cherché pendant des heures sur le net, rien à faire.

Quelqu'un aurait une idée ?

Grand merci à vous !

9 réponses

  1. Contributeur
    hello
    à la fin, il faut faire une boucle et pas de > dans le copy ,essayer:
    echo °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
    echo ° Combien de fois ?                                                 °
    echo °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
    set /p combien=
    for /L %%n in (1,1,%combien%) do  COPY %nom%.%ext%  %nom%%%n.%ext%
    
    1. Contributeur
      mettre des "
      IF EXIST "%nom%.%ext%" (
      ...
      for /L %%n in (1,1,%combien%) do  COPY "%nom%.%ext%"  "%nom%%%n.%ext%"

      je n'ai pas compris le problème du nom. faut-il enlever le chiffre avant ?
      1. Contributeur
        essayer avec
        ...
        echo °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
        echo ° Combien de fois ?                                                 °
        echo °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
        set /p combien=
        set /a combien+=1
        for /L %%n in (2,1,%combien%) do  COPY "%nom%.%ext%"  "%nom:~0,-1%%%n.%ext%"
        
        
        1. Merci

          Le fichier spécifié est introuvable (6 fois le message, si je demande 6)

          Mais je sens qu'on est pas loin de la vérité ;)
          1. - Oui il y en a, sans espace ça marche ! Comment résoudre ce problème ? Il me faut absolument des espèce dans les noms de fichier.

            - Et aussi il ajoute le numéro après le premier numéro à incrémenter du coup j'ai :

            fichier1.txt
            fichier11.txt (fichier 1 + 1.txt)
            fichier12.txt (fichier 1 + 2.txt)

            Merci pour tout !
            1. Niquel pour les espace merci !

              Oui en fait ce que je voudrais :

              Fichier 1.txt (Fichier original)
              Fichier 2.txt
              Fichier 3.txt
              Fichier 4.txt
              Fichier 5.txt
              N Fois

              Et la j'ai :

              Fichier 1.txt (fichier original)
              Fichier 11.txt
              Fichier 12.txt
              Fichier 13.txt

              Il faut enlever "1" sur les noms de fichiers suivant

              Encore merci... ;)
              1. Parfait ça marche !

                Les jours prochain je verrais pour faire la meme chose avec :

                Fichier 1 - NOM PROJET.ext
                Fichier 2 - NOM PROJET.ext
                Fichier 3 - NOM PROJET.ext
                Fichier 4 - NOM PROJET.ext

                Le numéro se retrouve coincé entre un titre et un -

                Merci et à bientôt
                1. Contributeur
                  essayer ceci
                  ...
                  setlocal enableDelayedExpansion
                  echo ?????????????????????????????????????????????????????????????
                  echo ? Combien de fois ?                                                 ?
                  echo ?????????????????????????????????????????????????????????????
                  set /p combien=
                  set /a combien+=1
                  for /L %%n in (2,1,%combien%) do  (
                          set nn=%nom:1 - NOM PROJET=%
                          COPY "%nom%.%ext%"  "!nn!%%n - NOM PROJET.%ext%"
                          )