Hola.
Estoy intentando adaptar en script bash a batch, se trata de copiar las imagenes de una carpeta y si la imagen esta en vertical rotarla 90 grados con imagemagick.
El problema es que hago dos IF y siempre se cumple el primero de ellos.
El cofigo es este:
@echo off
FOR %%f IN ("*.jpg") DO (
For /F %%# in ('identify -format "%%[fx:w]" "%%f"') Do (SET /A "width=%%#")
For /F %%# in ('identify -format "%%[fx:h]" "%%f"') Do (SET /A "height=%%#")
MKDIR ".\modificado" 2>NUL
MKDIR ".\modificado2" 2>NUL
echo %%f
echo %width% x %height%
IF %height% LSS %width% (
echo "foto horizontal"
copy "%%f" "modificado2\%%~nf.jpg"
)
IF %width% LSS %height% (
convert "%%f" -rotate 90 "modificado\%%~nf.jpg"
ECHO "foto vertical.transformando..."
)
)
Espero me puedan ayudar, gracias.
Prueba así:
@echo off & SetLocal EnableDelayedExpansion
FOR %%f IN ("*.jpg") DO (
For /F %%# in ('identify -format "%%[fx:w]" "%%f"') Do (SET /A "width=%%#")
For /F %%# in ('identify -format "%%[fx:h]" "%%f"') Do (SET /A "height=%%#")
MKDIR ".\modificado" 2>NUL
MKDIR ".\modificado2" 2>NUL
echo %%f
echo !width! x !height!
IF !height! LSS !width! (
echo "foto horizontal"
copy "%%f" "modificado2\%%~nf.jpg"
)
IF !width! LSS !height! (
convert "%%f" -rotate 90 "modificado\%%~nf.jpg"
ECHO "foto vertical.transformando..."
)
)
Saludos
Perfecto !!
no conocia lo de EnableDelayedExpansion
muchas gracias.
saludos