sup des caracteres et rajouter un prefix dans nom de fichier [RESOLU]

sup des caracteres et rajouter un prefix dans nom de fichier [RESOLU] - Shell/Batch - Programmation

Marsh Posté le 18-05-2008 à 14:56:33    

Bonjour,  
 
je bloque sur une partie de mon script..
 
j'utilise un prog qui redimensionne les photos en masse et qui rajoute un "-taille" en fin de fichier.  
Le but est de prendre toutes les photos creer et de les depalcer dans un dossier (jusque la tout va bien).
Une fois dans le dossier je veux virer les "-taille" des noms de fichier, puis leur rajouter un prefix s'il y a besoin.
 
le batch ressemble a ça:
 
-----------------------------------------------
 
@echo off
setlocal EnableDelayedExpansion
 
set /P t=indiquer taille (...640 800 1024 1280 1600...)?:
 
echo off
copy PhotoResize.exe PhotoResize!t!OHM.exe
 
@echo off
setlocal EnableDelayedExpansion
 
@echo off
set currentpath=%CD%  
 
move "PhotoResize!t!OHM.exe" "%CD%"
 
PhotoResize!t!OHM.exe "%CD%"
 
setlocal EnableDelayedExpansion
 
del PhotoResize!t!OHM.exe
 
@echo off
mkdir Redim_!t!
 
move *-!t!.jpg Redim_!t!
 
cd "Redim_!t!"
 
for %%i in (*.jpg) do set VrChm=%%i& set VrFch=%%~nxi& call :suite
:suite
set VrFch=%VrFch:-200=%
echo "%VrChm%" "%VrFch%"
ren "%VrChm%" "%VrFch%"
 
cls
 
echo "Quel Prefix pour la photo ?"
set /P pref=Prefix:
for %%x in (*.jpg) do ren "%%~nxx" "!pref!%%~nxx"
 
-----------------------------------------------
 
 
si je rentre la taille a la main la dedans:
 
for %%i in (*.jpg) do set VrChm=%%i& set VrFch=%%~nxi& call :suite
:suite
set VrFch=%VrFch:-200=%
echo "%VrChm%" "%VrFch%"
ren "%VrChm%" "%VrFch%"
 
ça passe. Mais j'aurais voulu qu'il recupere la variable !t! qui représente la taille et me vire les "-taille" automatiquement, mais ça ne passe pas.
 
Le deuxieme souci vient du prefix. Si je le laisse tel quel, a la place d'en avoir un seul.. j'ai une chaine de prefix qui se cumulent.
 
sachant que mes photos sont renommer comme suit:
2007-11-20@19.33.07.jpg
elle devient apres passage dans PhotoResize!t!OHM (si t=200)
2007-11-20@19.33.07-200.jpg
et apres le passage du prefix (si pref=hg)
hg-hg-hg-hg-hg-2007-11-20@19.33.07.jpg
 
 
voila mon dileme, si quelqu'un a une idee ?  
ps: le code est bizarre, parce que j'ai recuperer des bouts un peut partout avant d'arriver a ça.
 
merci a celui qui pourra m'aider.

Message cité 1 fois
Message édité par dindae le 20-05-2008 à 18:37:43
Reply

Marsh Posté le 18-05-2008 à 14:56:33   

Reply

Marsh Posté le 20-05-2008 à 18:35:44    

dindae a écrit :


 
cd "Redim_!t!"
 
for %%i in (*.jpg) do set VrChm=%%i& set VrFch=%%~nxi& call :suite
:suite
set VrFch=%VrFch:-200=%
echo "%VrChm%" "%VrFch%"
ren "%VrChm%" "%VrFch%"
 
cls
 
echo "Quel Prefix pour la photo ?"
set /P pref=Prefix:
for %%x in (*.jpg) do ren "%%~nxx" "!pref!%%~nxx"
 
.


 
Bon j'ai un peu modifier le tout et maintenant ça passe.
Voila la partie modifier si cela interresse quelqu'un:
grep, ls et sed peuvent etre trouvé la:http://sourceforge.net/projects/unxutils
 
 
cd "Redim_!t!"  
 
for /F %%i in ('dir /A:-D /B') do (echo %%i) | for /F %%j in ('findstr /r ".jpg"') do echo %%j| for /F %%k in ('sed "s/-[^-]*\.jpg/\.jpg/"') do ren %%j %%k  
 
 
echo off
REM --------------------------------------------------------
REM sans grep et ls:
REM
REM @echo off
REM for /F %%i in ('dir /A:-D /B') do (echo %%i) | for /F %%j in ('findstr /r ".jpg"') do echo %%j| for /F %%k in ('sed "s/-[^-]*\.jpg/\.jpg/"') do ren %%j %%k  
REM  
REM ---------------------------------------------------------
REM avec grep et ls
REM  
REM @echo off
REM for /F %%i in ('ls') do (echo %%i) | for /F %%j in ('grep "jpg"') do echo %%j| for /F %%k in ('sed "s/-[^-]*\.jpg/\.jpg/"') do ren %%j %%k  
REM
REM ---------------------------------------------------------
 
 
echo "Quel Prefix pour la photo ?"
set /P pref=Prefix:
for /f "tokens=*" %%A in ('dir /b "*.jpg"') do (ren "%%A" "!pref!%%A" )
 
exit


Message édité par dindae le 20-05-2008 à 18:41:47
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed