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
    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%"
            )
    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 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. 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. 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. - 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. 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. 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%