Copier n fois un fichier en gardant son nom [Résolu]

Signaler
-
 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

Messages postés
12789
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 octobre 2020
3 712
Bonjour,

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

hu! quelle rapidité.
disons 10 .

Merci
Messages postés
12789
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 octobre 2020
3 712
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

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
Messages postés
12789
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 octobre 2020
3 712
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 ?
Messages postés
12789
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 octobre 2020
3 712 >
Messages postés
12789
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 octobre 2020

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
merci beaucoup.
c'est fabuleux, je regarde cela de plus près.

merci encore.
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 ?
Messages postés
12789
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 octobre 2020
3 712
Oui tout à fait.
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
Messages postés
12789
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 octobre 2020
3 712
Merci bonne continuation également !

A bientôt peut-être.
c'est certain , si j'ai besoin .