Copier n fois un fichier en gardant son nom

Résolu/Fermé
arvi - Modifié le 25 avril 2020 à 18:00
 arvi - 25 avril 2020 à 20:02
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

barnabe0057 Messages postés 14112 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 29 novembre 2022 4 847
25 avril 2020 à 18:10
Bonjour,

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

0
hu! quelle rapidité.
disons 10 .

Merci
0
barnabe0057 Messages postés 14112 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 29 novembre 2022 4 847
25 avril 2020 à 18:27
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
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
barnabe0057 Messages postés 14112 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 29 novembre 2022 4 847
Modifié le 25 avril 2020 à 18:50
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
barnabe0057 Messages postés 14112 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 29 novembre 2022 4 847 > barnabe0057 Messages postés 14112 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 29 novembre 2022
25 avril 2020 à 18:45
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

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

merci encore.
0
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
barnabe0057 Messages postés 14112 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 29 novembre 2022 4 847
25 avril 2020 à 19:54
Oui tout à fait.
0
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
barnabe0057 Messages postés 14112 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 29 novembre 2022 4 847
25 avril 2020 à 20:01
Merci bonne continuation également !

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