[Batch]No consigo que funcione una variable dentro de un for

Iniciado por teamcpc, 15 Enero 2011, 15:12 PM

0 Miembros y 1 Visitante están viendo este tema.

teamcpc

Quiero hacer un script en batch (windows XP) para sacar una serie de capturas de un programa de renderizado lego/tente 3D 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 (dos) [Seleccionar]
@echo off
# definicion de variables
set RUTA_DE_LDVIEW=C:\Archivos de programa\LDView\
set RUTA_MODELO=C:\tente\models\
set MODELO=autobusurbano
set EXTENSION=.ldr
set SALIDA=graficos\
mkdir %SALIDA%
mkdir %SALIDA%%MODELO%
echo "Procesando %MODELO%"
set /a contador=1
FOR /L %%y IN (0,1,8) DO (
  set /a contador+=1
  echo %contador%
  "%RUTA_DE_LDVIEW%LDView.exe" "%RUTA_MODELO%%MODELO%%EXTENSION%" -SaveWidth=300 -SaveHeight=300 -DefaultLatLong=75,%%y0 -SaveSnapshot=%SALIDA%%MODELO%\frame000%contador%.jpg
)
FOR /L %%y IN (9,1,35) DO (
  set /a contador+=1
  echo %contador%
  "%RUTA_DE_LDVIEW%LDView.exe" "%RUTA_MODELO%%MODELO%%EXTENSION%" -SaveWidth=300 -SaveHeight=300 -DefaultLatLong=75,%%y0 -SaveSnapshot=%SALIDA%%MODELO%\frame00%contador%.jpg
)
echo.

leogtz

#1
Código (dos) [Seleccionar]
@echo off
setlocal enabledelayedexpansion
rem definicion de variables
set RUTA_DE_LDVIEW=C:\Archivos de programa\LDView\
set RUTA_MODELO=C:\tente\models\
set MODELO=autobusurbano
set EXTENSION=.ldr
set SALIDA=graficos\
mkdir %SALIDA%
mkdir %SALIDA%%MODELO%
echo "Procesando %MODELO%"
set /a contador=1
FOR /L %%y IN (0,1,8) DO (
  set /a contador+=1
  echo !contador!
  "!RUTA_DE_LDVIEW!LDView.exe" "!RUTA_MODELO!!MODELO!!EXTENSION!" -SaveWidth=300 -SaveHeight=300 -DefaultLatLong=75,%%y0 -SaveSnapshot=!SALIDA!!MODELO!\frame000!contador!.jpg
)
FOR /L %%y IN (9,1,35) DO (
  set /a contador+=1
  echo !contador!
  "!RUTA_DE_LDVIEW!LDView.exe" "!RUTA_MODELO!!MODELO!!EXTENSION!" -SaveWidth=300 -SaveHeight=300 -DefaultLatLong=75,%%y0 -SaveSnapshot=!SALIDA!!MODELO!\frame00!contador!.jpg
)
echo.


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".
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com