INCREMENTER UN NOM DE FICHIER EN BATCH

Résolu/Fermé
mahora_34070 Messages postés 3 Date d'inscription mercredi 9 décembre 2020 Statut Membre Dernière intervention 3 mars 2021 - 9 déc. 2020 à 14:56
mahora_34070 Messages postés 3 Date d'inscription mercredi 9 décembre 2020 Statut Membre Dernière intervention 3 mars 2021 - 3 mars 2021 à 16:12
Bonjour,

Je souhaite renommer le nom de mes fichiers récupérés à partir du scan d'un photocopieur en incrémentant une partie du nom de la façon suivante :

AAAA-xxxxxxxxxx.pdf où xxxxxxxxxxx est aléatoire (date et heure système)

pour obtenir :

AAAA-00001.pdf - AAAA-00002.pdf
...
AAAA-00099.pdf - AAAA-00100.pdf
...
AAAA-00999.pdf - AAAA-01000.pdf - AAAA-01001.pdf

etc...


En fait lorsque je récupère les fichiers scannés, j'ai une procédure qui doit se lancer toutes les 5mn en renommant les nouveaux fichiers arrivés à partir du dernier numéro affecté.

Je récupère bien le dernier numéro de fichier, je scinde le nom du fichier original en plusieurs parties, j'isole la partie numérique que je dois incrémenter en la convertissant en numérique, je sais l'incrémenter, je concatène toutes variables pour former le nouveau nom de mon fichier, mais lorsque je lance ma boucle pour renommer mes fichiers, la ligne ""rename" perd sa syntaxe et devient

rename *.pdf

au lieu de

rename *.pdf "contenu de ma variable"

Voici la boucle qui me pose problème :

setlocal enableDelayedExpansion

FOR /L %%N IN (%prem%,1,%nbFic%) do (

set VarF=%N_F%%tot2%%%N%ext%

rename *.pdf %VarF%

pause

)

En fait la commande "rename" ne fonctionne que si je suis en dehors de la boucle.
Quelqu'un aurait une idée ?

Merci d'avance.

3 réponses

barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 4 917
9 déc. 2020 à 15:58
Bonjour,

Merci d'utiliser les balises de code quand tu postes du code.

Pour revenir à ton problème, la variable VarF se trouve dans le bloc de la boucle FOR, elle doit donc être retardée comme ceci :
rename *.pdf !VarF!


Pourquoi utiliser un wildcard dans ta commande RENAME ? Je ne pense pas que tu aboutisses au résultat escompté.


0