FOR /L %i IN (1,1,5000) DO

Iniciado por securedigital, 22 Noviembre 2006, 20:30 PM

0 Miembros y 2 Visitantes están viendo este tema.

securedigital

Simple y llanamente esto:

FOR /L %i IN (1,1,5000) DO       -->>  Script to loop

Para mi no es tan simple !! :D
No entiendo muy bien la sintaxis, repite con el FOR , la /L no se que es, el %i es una variable?
Los numeros 1,1,5000 si no me equivoco representan un periodo de tiempo verdad? como funciona para personalizar mis valores?


Saludos
The man who whispered to the computers
Der Mann, der zu den Computern flüsterte

                                                 FAD58DE7366495DB4650CFEFAC2FCD61

                                    

knightlain

tal vez este link te sea de ayuda, por eso google es cool  ;), me imagino que ya sabías que era del batch

http://www.blat.net/examples/FORinDO.html


sirdarckcat

:P es un ciclo en batch, para recorrer numericamente.. es como un:

for i = 1 to 5000 step 1

o algo asi.. en vb y pascal.. mira:

FOR /L %i IN (1,1,5000) DO

FOR es el comando xD
/L es el argumento que da paso a la iteracion.
%i, como bien dices, es la variable
IN (1,1,5000)

el primer parametro es el valor inicial, el segundo parametro es cuanto se va a agregar para cada iteracion, y el ultimo, para decir, en que valor se va a detener.

los 3 parametros permiten valores negativos.

lo que se escribe despues del DO, seran los comandos a ejecutar, puedes usar parentesis para agrupar mas de 1.

Saludos!!

securedigital

Hola

Si, se que es en batch.

Ostras buena explicacion y detallada Sirdarckcat gracias
Me ha quedado muy claro, solo me surge una pregunta. Tambien gracias knightlain por el link  :D

DE tal forma que este script me repetira lo que ponga 5000 veces y se aturara? Eso cuanto tiempo en minutos significa? La idea es que el codigo que le quiero meter lo repita durante bastante rato, como minimo 30 minutos.



Saludos
The man who whispered to the computers
Der Mann, der zu den Computern flüsterte

                                                 FAD58DE7366495DB4650CFEFAC2FCD61

                                    

sirdarckcat

ahmmmm mejor ciclalo, y deja un comando con AT.EXE para que lo finalize.. que no creo que exista alguna funcion para dejar un script determinado tiempo..

podrias usar la variable %TIME% para ver cuanto lleva, en ves de usar AT.. es como gustes :P

Saludos!!

securedigital

Me dijiste que la segunda cifra eran los ciclos que a hacer

Si lo dejo asi que tal para que dure un buen rato?


FOR /L %i IN (1,15,5000) DO

Por cierto, el comando AT verdad que es el porgramador de tareas ? me recuerda a un exploit que hay sobre este... :P

Inluso se puede añadir que al cabo de media hora con el AT se detenga? Como se haria esto?


Saludos
The man who whispered to the computers
Der Mann, der zu den Computern flüsterte

                                                 FAD58DE7366495DB4650CFEFAC2FCD61

                                    

sirdarckcat

1.- con taskkill lo detienes
2.- el "exploit" usando AT no sirve xD (no era un bug)
3.- si se quedaria un buen rato con ese codigo, pero no duraria exactamente 30 minutos..

Saludos!!

securedigital

ok

Por cierto, pongo el codigo

@echo off
  for /l %i in (1,1,5000) do
    ping localhost
exit

Y me dice que no se esperaba "i" en este momento...que le pasa al script?


Saludos
The man who whispered to the computers
Der Mann, der zu den Computern flüsterte

                                                 FAD58DE7366495DB4650CFEFAC2FCD61

                                    

neox.

Aunque no se debe revivir post, la pregunta es muy simple y como nadie contesto:

Para bats la sintaxis del comando FOR cambia en que la varible no viene determinada por %letra , sino por %%letra.

Prueba esto:

Citar
@echo off
  for /L %%i in (1,1,5000) do ping localhost