Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: edunardo en 22 Diciembre 2008, 18:09 pm



Título: Pequeñas dudas bat, for
Publicado por: edunardo en 22 Diciembre 2008, 18:09 pm
Hola a todos.
No se que me pasa que no me funciona un for sencillito que estaba probando para ejecutar un ping a varios equipos...

El for sería así

for /L %a in (1,1,254) do echo %a%

He probado poniendo los % de mil maneras pero no logro que la variable vaya cogiendo los diferentes valores 1,2,3,4----254 algo pongo mal.

Por otro lado la pregunta, es, para que esto funcione tengo que definir una variable numerica? o el propio for la crea. De tener que crearla como sería con set /n variable?

gracias.


Título: Re: Pequeñas dudas bat, for
Publicado por: Pony-Magic en 22 Diciembre 2008, 18:50 pm
for /L %%a in (1,1,254) do (echo %%a)


Título: Re: Pequeñas dudas bat, for
Publicado por: edunardo en 22 Diciembre 2008, 20:56 pm
agg era el maldito paréntesis, ahora si funciona.

Ya solo me falta que se metan solo los equipos que responden, la sintaxis que he pensado es esta pero por algún motivo no le gusta como lo pongo.

for /L %%a in (1,1,254) do (ping -a 192.168.1.%%a -n 2 && >> "prueba5.txt")

Lo que quiero es que los equipos que respondan al ping se escriban en el archivo prueba.txt.
El problema es que si pongo el && me da un error que parece de sintaxis.
No se donde fallo.


Título: Re: Pequeñas dudas bat, for
Publicado por: leogtz en 22 Diciembre 2008, 21:39 pm
Sin testear :
Código
  1. @ECHO OFF
  2. FOR /L %%X IN (1,1,255) DO (
  3. PING 192.168.1.%%X && (
  4. ECHO %%X >> PRUEBA5.TXT
  5. )
  6. )


Título: Re: Pequeñas dudas bat, for
Publicado por: edunardo en 22 Diciembre 2008, 21:54 pm
Si que funciona Leo, el caso es que así solo obtengo la ip, pero el objetivo es guardar ip y nombre de host. De ahí que haga el ping -a.


Título: Re: Pequeñas dudas bat, for
Publicado por: leogtz en 22 Diciembre 2008, 22:10 pm
Código:
@ECHO OFF
FOR /L %%X IN (64,1,64) DO (
PING -a 192.168.1.%%X && (
FOR /F "TOKENS=4" %%C IN ('PING -a 192.168.1.%%X ^| FIND /I "Haciendo"') DO (
ECHO %%C: >> PRUEBA5.TXT
ECHO 192.168.1.%%X >> PRUEBA5.TXT
)
)
)

Me genera algo como esto en el PRUEBA5.TXT (Solo los que respondieron al ping):
Código:
jimmar.gateway.2wire.net: 
192.168.1.64


Título: Re: Pequeñas dudas bat, for
Publicado por: edunardo en 22 Diciembre 2008, 22:15 pm
Eso había pensado, el anidar un for en el otro pero no tenía muy claro como hacerlo.
Excelente código gracias.