Oui c'est ça le Dos ou Windows classe par ordre alphabétique
image01_[N1]
image02_[N1]
image03_[N1]
image04_[N1]
image01_[N2]
image02_[N2]
image03_[N2]
image04_[N2]
va devenir afficher par le DOS
image01_[N1]
image01_[N2]
image02_[N2]
image02_[N1]
image03_[N1]
image03_[N2]
image04_[N1]
image04_[N2]
il suffit d'intervertir les compteurs pour que cela fonctionne
image_[N1]_01
image_[N1]_02
image_[N1]_03
image_[N1]_04
image_[N2]_01
image_[N2]_02
image_[N2]_03
image_[N2]_04
Normalement c'est ce que fait le script DOS. il renomme les fichiers selon le pattern img[CPT1]_[CPT2] ou CPT2 va de 1à 4 et CPT1 est incrémenté de 1 dès que CPT2 revient à 1.
Pour plus de sureté sur le classement la ligne
Code: Select all
FOR /R %%A IN (*.BMP;*.jpg) DO CALL :TRAITE "%%~nxA" %%~xA
peut être remplacé par
Code: Select all
FOR /F %%A IN ('dir /on *.BMP;*.jpg') DO CALL :TRAITE "%%~nxA" %%~xA
dir /on "o" classe "n" par ordre alphabétique
le script, avec des commentaires, devient :
Code: Select all
@ECHO OFF
REM initialisation
SET /A CPT1=1
SET /A CPT2=1
REM on prend par ordre alphabétique tous les fichiers et on en extraite le nom "%%~nxA" mis dans %1 et l'extension %%~xA mis dans %2 et on appel la fonction TRAITE
FOR /F %%A IN ('dir /on *.BMP;*.jpg') DO CALL :TRAITE "%%~nxA" %%~xA
REM ALLER à la fin
GOTO :EOF
:TRAITE
REM SI CPT1 est inférieur à 10 mettre sous la forme img0[CPT1]_[CPT2] sinon img[CPT1]_[CPT2] pour permettre un classement alphabétique
IF %CPT1% LSS 10 (SET FIC=img0%CPT1%_0%CPT2%%2) ELSE (SET FIC=img%CPT1%_0%CPT2%%2)
ECHO renommage de %1 en %FIC%
MOVE %1 %FIC%
REM SI CPT2 est à quatre augmenter de 1 CPT1
IF %CPT2% EQU 4 SET /A CPT1=%CPT1%+1
REM SI CPT2 est à quatre revenir à 1 sinon l'incrémenter de 1
IF %CPT2% EQU 4 (SET /A CPT2=1) ELSE ( SET /A CPT2=%CPT2%+1)
Je suis à votre disposition en cas de question
Cordialement,
TieFighter