Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Narcosala en 17 Octubre 2008, 19:35 pm



Título: valor variable bucle FOR [Batch]
Publicado por: Narcosala en 17 Octubre 2008, 19:35 pm
Hola,

Estaba realizando un simple script cuando me he encontrado con la imposibilidad de tratar el valor de una variable dentro de un bucle FOR. Dicha variable solo coge su valor una vez ha abandonado el script.

¿Alguien me puede indicar como solucionarlo?

Aquí os pongo tanto el código como la salida del mismo:

Citar
@ECHO OFF
SET /A NUM=0
FOR /L %%A IN (1,1,5) DO (
SET /A NUM=NUM+%%A
ECHO Valor Num en bucle: %NUM%
)
ECHO Variable Num finalizado bucle: %NUM%

Salida:

Citar

C:\>Batch.bat
Valor Num en bucle: 0
Valor Num en bucle: 0
Valor Num en bucle: 0
Valor Num en bucle: 0
Valor Num en bucle: 0
Variable Num finalizado bucle: 15
C:\>


Gracias.


Título: Re: valor variable bucle FOR [Batch]
Publicado por: Darioxhcx en 17 Octubre 2008, 22:59 pm
FOR /L %%x in ( 0,1,5 ) Do ( echo %%x )

te devuelve

0
1
2
3
4
5

saludos


Título: Re: valor variable bucle FOR [Batch]
Publicado por: Narcosala en 18 Octubre 2008, 16:46 pm
Estoy deacuerdo con tu respuesta, pero si intento asignar el valor de %%x a otra variable, esta última no toma valor hasta que se abandona el bucle.


Título: Re: valor variable bucle FOR [Batch]
Publicado por: Baphonet en 19 Octubre 2008, 22:27 pm
Hace poco me encontre con el mismo problema y  opte por solucionarlo mediante un call, creando una sección aparte para las operaciones dentro del bucle. Asi:
Código:
@ECHO OFF
SET /A NUM=0
FOR /L %%A IN (1,1,5) DO (call :cont %%A)

ECHO Variable Num finalizado bucle: %NUM%
pause
exit

:cont
SET /A NUM=NUM+%1
ECHO Valor Num en bucle: %NUM%
goto :eof

Un saludo, espero que te sirva.