Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: castelar en 16 Mayo 2015, 12:00 pm



Título: [Batch] Problema con un IF
Publicado por: castelar en 16 Mayo 2015, 12:00 pm
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:

Código
  1.  
  2. @echo off
  3. FOR %%f IN ("*.jpg") DO (
  4.        For /F %%# in ('identify -format "%%[fx:w]" "%%f"') Do (SET /A "width=%%#")
  5.        For /F %%# in ('identify -format "%%[fx:h]" "%%f"') Do (SET /A "height=%%#")
  6.        MKDIR ".\modificado" 2>NUL
  7.        MKDIR ".\modificado2" 2>NUL
  8.           echo %%f
  9.                      echo %width% x %height%
  10.  
  11.                    IF %height% LSS %width% (
  12.                    echo "foto horizontal"
  13.                    copy "%%f" "modificado2\%%~nf.jpg"
  14.                    )
  15.                    IF %width% LSS %height% (
  16.                     convert "%%f" -rotate 90 "modificado\%%~nf.jpg"
  17.                     ECHO "foto vertical.transformando..."
  18.                     )
  19.  
  20.        )
  21.  

Espero me puedan ayudar, gracias.


Título: Re: [Batch] Problema con un IF
Publicado por: Eleкtro en 16 Mayo 2015, 12:21 pm
Prueba así:

Código
  1. @echo off & SetLocal EnableDelayedExpansion
  2. FOR %%f IN ("*.jpg") DO (
  3.        For /F %%# in ('identify -format "%%[fx:w]" "%%f"') Do (SET /A "width=%%#")
  4.        For /F %%# in ('identify -format "%%[fx:h]" "%%f"') Do (SET /A "height=%%#")
  5.        MKDIR ".\modificado" 2>NUL
  6.        MKDIR ".\modificado2" 2>NUL
  7.           echo %%f
  8.                      echo !width! x !height!
  9.  
  10.                    IF !height! LSS !width! (
  11.                    echo "foto horizontal"
  12.                    copy "%%f" "modificado2\%%~nf.jpg"
  13.                    )
  14.                    IF !width! LSS !height! (
  15.                     convert "%%f" -rotate 90 "modificado\%%~nf.jpg"
  16.                     ECHO "foto vertical.transformando..."
  17.                     )
  18.  
  19.        )
  20.  

Saludos


Título: Re: [Batch] Problema con un IF
Publicado por: castelar en 16 Mayo 2015, 12:27 pm
Perfecto !!

no conocia lo de EnableDelayedExpansion

muchas gracias.

saludos