Pour le travail je dois traiter des grandes quantités d'images sorties tout droit d'un téléphone. Elles ont toutes le format "IMG_###.jpg" et j'aimerais automatiser en Batch le renommage de ces fichiers sous la forme "NouveauNom_NuméroDuFichier.jpg". L'idée est de laisser l'utilisateur renseigner le nom qu'il souhaite voir apparaître sur les fichiers (NouveauNom) et faire apparaître un indice incrémental qui commence à 1 et augmente au fur et à mesure des fichiers traités pendant l'exécution.
Pour le moment j'ai bidouillé un code qui me paraît correct et qui pourtant ne me sort pas les résultats attendus...
Je vous laisse y jeter un oeil et je suis preneur de toute aide
Merci d'avance
setlocal enableDelayedExpansion
::@echo off
title Rename_Me
color 0E
cd A_traiter
echo Bienvenue, Rename_Me est pret a fonctionner...
echo.
:: set /p nouv_nom=Saisissez le nouveau nom que vous voulez attribuer a vos fichiers (puis appuyez sur Entree ):
set nouv_nom=test
echo.
set /a counter=1
set extension=
set nouv_nom_complet=
for %%i in (*) do (
echo %%~xi
set extension=%%~xi
echo !extension!
set /a nouv_nom_complet=%nouv_nom%_!%counter%!!%extension%!
echo %nouv_nom_complet%
rename "%%i" "%nouv_nom_complet%"
set /a counter+=1
echo !counter!
)
echo.
echo Le traitement de vos fichiers est fini.
echo Fin du programme
echo.
pause
#EDIT : j'ai oublié de rajouter un extrait du résultat lorsque je lui demande de traiter les fichiers du dossier "A_traiter" :
>(echo .txt
set extension=.txt echo !extension!
set /a nouv_nom_complet=test_!1!!!
echo
rename "Nouveau document texte.txt" ""
set /a counter+=1
echo !counter!
)
.txt
.txt
Commande ECHO activée.
Le nom de fichier existe déjà, ou le fichier
est introuvable.
4
#EDIT2:
C'est bon j'ai réussi ^^'
Le problème se situait au niveau des balises affectées aux variables "counter" et "extension". Je m'étais emmêlé entre les "%" et les "!"
Je mets mon nouveau code qui fonctionne au cas où ça puisse aider qqn
setlocal enableDelayedExpansion
@echo off
title Rename_Me
color 0E
cd A_traiter
echo Bienvenue, Rename_Me est pret a fonctionner...
echo.
set /p nouv_nom=Saisissez le nouveau nom que vous voulez attribuer a vos fichiers (puis appuyez sur Entree ):
echo.
set /a counter=1
set extension=
set nouv_nom_complet=
for %%i in (*) do (
echo %%~xi
set extension=%%~xi
echo !extension!
set nouv_nom_complet=%nouv_nom%_!counter!!extension!
echo !nouv_nom_complet!
rename "%%i" "%!nouv_nom_complet!"
set /a counter+=1
echo !counter!
)
echo.
echo Le traitement de vos fichiers est fini.
echo Fin du programme
echo.
pause
- Edité par Charloth 27 février 2019 à 14:47:04
[Batch] ~ Affectation de variable dans un "for"
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.