Choisir - Copier - Incrementer

Résolu
batch123 Messages postés 7 Statut Membre -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
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. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    y a-t-il des espaces dans le nom ?
    1
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. batch123 Messages postés 7 Statut Membre
     
    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é ;)
    0
  7. batch123 Messages postés 7 Statut Membre
     
    - 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 !
    0
  8. batch123 Messages postés 7 Statut Membre
     
    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... ;)
    0
  9. batch123 Messages postés 7 Statut Membre
     
    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
    0
  10. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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%"
            )
    0