[Batch] Renommer fichiers avec incrémentation [Résolu/Fermé]

Signaler
Messages postés
20
Date d'inscription
jeudi 30 octobre 2008
Statut
Membre
Dernière intervention
1 octobre 2010
-
danieliiitooo
Messages postés
20
Date d'inscription
jeudi 30 octobre 2008
Statut
Membre
Dernière intervention
1 octobre 2010
-
Bonjour,

Ci-dessous une problématique récurrente (Au vu du nombre de posts disponibles sur les forums) mais dont je ne parviens à trouver de solution.

Pour faire simple:

Dans un répertoire "taaa\" j'ai des fichiers qui viennent s'ajouter par grappes de 5 toutes les 5 minutes.
Leur nom est toujours le même:

"titi_xxx.jpg" ou "xxx" est un chiffre dont la longueur peut varier ( de 1 à 99999...)
Les 5 fichiers ont toujours des xxx qui se suivent

Exemple: titi_123.jpg , titi_124.jpg , titi_125.jpg ....

Le xxx peut être totalement aléatoire. Cela peut aller de 120 à 125, 1250 à 1255 bref cela dépend de l'humeur du serveur qui les génère =)

Je souhaiterai les renommer avec une suite de chiffre qui soit toujours la même: 1,2,3,4,5

En gros, de titi_121.jpg , titi_122.jpg , titi_123.jpg nous aurions après exécution du batch titi_1.jpg, titi_2.jpg...

Mon code est donc:

@echo off

set /a nb_of_files=1
if exist "*.jpg" for /f "delims=" %%a in ('dir /o /b "titi\*.jpg"') do (
rename %%a titi_%nb_of_files%.jpg
set /a nb_of_files+=1
echo %nb_of_files%
)

echo There is %nb_of_files% file(s)



C'est là que les soucis commencent =)

Le batch ne renomme que le premier fichier avec la valeur de la variable "nb_of_files" initiale soit 1. Après il me dit bien entendu que le fichier existe déjà...
Mon echo %nb_of_files% me sort toujours "1" (D'ou le souci cité juste avant)
Mon "echo There is %nb_of_files% file(s)" me sort bien "5".

Donc en gros le compteur s'incrémente bien hors de la boucle mais dans la boucle c'est toujours 1.
Donc impossible de renommer les fichiers de manière correcte.

Si vous avez des idées, je suis preneur.

A noter que j'ai tenté de sortir la partie incrémentation hors de la boucle via un "call" .. En vain c'est toujours 1...

Merci d'avance pour votre aide

3 réponses

Messages postés
17963
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
13 décembre 2019
4527
hello
ajouter au début du script
setlocal enableDelayedExpansion
5
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63102 internautes nous ont dit merci ce mois-ci

Messages postés
20
Date d'inscription
jeudi 30 octobre 2008
Statut
Membre
Dernière intervention
1 octobre 2010

Effectivement, ça marche beaucoup mieux ^^

Merci Dubcek !!!!