Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: teamcpc en 15 Enero 2011, 15:12 pm



Título: [Batch]No consigo que funcione una variable dentro de un for
Publicado por: teamcpc en 15 Enero 2011, 15:12 pm
Quiero hacer un script en batch (windows XP) para sacar una serie de capturas de un programa de renderizado lego/tente 3D (http://latentetk.superforos.com/viewtopic.php?p=28901&sid=2165fc7c755f1f0a1787486d5228520f#28901) y necesito que exista un contador dentro del for pero no se actualiza esa variable, pongo el trozo de código problemático:
Código
  1. @echo off
  2. # definicion de variables
  3. set RUTA_DE_LDVIEW=C:\Archivos de programa\LDView\
  4. set RUTA_MODELO=C:\tente\models\
  5. set MODELO=autobusurbano
  6. set EXTENSION=.ldr
  7. set SALIDA=graficos\
  8. mkdir %SALIDA%
  9. mkdir %SALIDA%%MODELO%
  10. echo "Procesando %MODELO%"
  11. set /a contador=1
  12. FOR /L %%y IN (0,1,8) DO (
  13.   set /a contador+=1
  14.   echo %contador%
  15.   "%RUTA_DE_LDVIEW%LDView.exe" "%RUTA_MODELO%%MODELO%%EXTENSION%" -SaveWidth=300 -SaveHeight=300 -DefaultLatLong=75,%%y0 -SaveSnapshot=%SALIDA%%MODELO%\frame000%contador%.jpg
  16. )
  17. FOR /L %%y IN (9,1,35) DO (
  18.   set /a contador+=1
  19.   echo %contador%
  20.   "%RUTA_DE_LDVIEW%LDView.exe" "%RUTA_MODELO%%MODELO%%EXTENSION%" -SaveWidth=300 -SaveHeight=300 -DefaultLatLong=75,%%y0 -SaveSnapshot=%SALIDA%%MODELO%\frame00%contador%.jpg
  21. )


Título: Re: No consigo que funcione una variable dentro de un for
Publicado por: leogtz en 15 Enero 2011, 18:06 pm
Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. rem definicion de variables
  4. set RUTA_DE_LDVIEW=C:\Archivos de programa\LDView\
  5. set RUTA_MODELO=C:\tente\models\
  6. set MODELO=autobusurbano
  7. set EXTENSION=.ldr
  8. set SALIDA=graficos\
  9. mkdir %SALIDA%
  10. mkdir %SALIDA%%MODELO%
  11. echo "Procesando %MODELO%"
  12. set /a contador=1
  13. FOR /L %%y IN (0,1,8) DO (
  14.   set /a contador+=1
  15.   echo !contador!
  16.   "!RUTA_DE_LDVIEW!LDView.exe" "!RUTA_MODELO!!MODELO!!EXTENSION!" -SaveWidth=300 -SaveHeight=300 -DefaultLatLong=75,% style="color: #448888;">%y0 -SaveSnapshot=!SALIDA!!MODELO!\frame000!contador!.jpg
  17. )
  18. FOR /L %%y IN (9,1,35) DO (
  19.   set /a contador+=1
  20.   echo !contador!
  21.   "!RUTA_DE_LDVIEW!LDView.exe" "!RUTA_MODELO!!MODELO!!EXTENSION!" -SaveWidth=300 -SaveHeight=300 -DefaultLatLong=75,% style="color: #448888;">%y0 -SaveSnapshot=!SALIDA!!MODELO!\frame00!contador!.jpg
  22. )

Dentro del bucle FOR hay que cambiar las variables a !var! para una correcta expansión.

Los comentario en batch se hacen con el comando "rem".