Copier n fois un fichier en gardant son nom

Résolu
arvi -  
 arvi -
Bonjour,
je n'y connais rien , mais est -il possible avec un petit programme .bat de :

dupliquer un fichier en incrémentant son nom.
ex: machin.wav ; machin_001.wav etc !!

ce programme sait-il faire avec n'importe quel fichier qu'on lui met à coté.(dans un même dossier).

Peut être pas très clair ma demande.
J'ai vu pas mal de choses mais cela ne correspond pas et je ne comprends pas vraiment comment ça marche.
merci

Configuration: Windows / Firefox 75.0

8 réponses

  1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 929
     
    Bonjour,

    Oui c'est très facile à faire, combien de copies te faut-il ?

    0
  2. arvi
     
    hu! quelle rapidité.
    disons 10 .

    Merci
    0
  3. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 929
     
    Voilà un exemple :

    @echo off
    setlocal enableextensions enabledelayedexpansion
    chcp 1252 >nul

    for %%A in (*.*) do (

    for /L %%E in (1,1,10) do (

    set index=00%%E
    set index=!index:~-3!
    copy "%%~fA" "%%~nA_!index!%%~xA"

    )

    )

    pause
    exit

    0
  4. arvi
     
    La vache !!!
    c'est fou ..
    Merci beaucoup! Je suis espanté.

    remarques :
    -1 il fait aussi des copies du .bat , est ce normal?
    -2 serait il possible d'avoir une explication des codes, si ce n'est pas trop ennuyeux pour vous ?

    Encore MERCI
    0
    1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 929
       
      1. je peux rajouter une condition pour le script lui-même

      2. la première boucle FOR sert à traiter tous les fichiers, peu importe leur type (*.*)

      La deuxième boucle FOR incrémente une valeur que l'on va ajouter au nom du fichier, je me sers de la variable index pour définir cette valeur sur 3 chiffres (d'abord j'ajoute deux 0 puis je découpe la variable pour ne garder que les trois derniers chiffres)

      Concernant la ligne avec le COPY, j'utilise les variables de substitution de la boucle FOR :

      %%~fA : chemin et nom du fichier
      %%~nA : nom du fichier
      %%~xA : extension du fichier

      D'autres questions ?
      0
      1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 929 > barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Voilà la version qui exclut le script de la copie :

        @echo off
        setlocal enableextensions enabledelayedexpansion
        chcp 1252 >nul

        for %%A in (*.*) do (

        for /L %%E in (1,1,10) do (

        set index=00%%E
        set index=!index:~-3!
        if not "%%~fA"=="%~f0" (copy "%%~fA" "%%~nA_!index!%%~xA")

        )

        )

        pause
        exit
        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. arvi
     
    merci beaucoup.
    c'est fabuleux, je regarde cela de plus près.

    merci encore.
    0
  7. arvi
     
    La deuxième boucle FOR incrémente une valeur que l'on va ajouter au nom du fichier, je me sers de la variable index pour définir cette valeur sur 3 chiffres (d'abord j'ajoute deux 0 puis je découpe la variable pour ne garder que les trois derniers chiffres)

    si je désire ne mettre que deux chiffres :

    set index=00%%E
    set index=!index:~-2!
    je mets donc un 2 à la place du 3 ?
    0
    1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 929
       
      Oui tout à fait.
      0
  8. arvi
     
    Et bien voilà , que dire de plus, j'ai ce qu'il me faut.
    Encore un grand merci pour ce partage.

    bonne continuation et courage en ce moment.
    Arvi
    0
    1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 929
       
      Merci bonne continuation également !

      A bientôt peut-être.
      0