Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: ElmoN02 en 22 Junio 2010, 19:49 pm



Título: Ping en .bat
Publicado por: ElmoN02 en 22 Junio 2010, 19:49 pm
Hola muchachos.

   Soy nuevo en el foro y quisiera hacer una consulta, Es posible que en el .bat al realizar ping y agregar al principio un comentario de horario?. Ejemplo:

Haciendo ping a google.com [72.14.253.104] con 32 bytes de datos:

Respuesta desde 72.14.253.104: bytes=32 tiempo=105ms TTL=50
Respuesta desde 72.14.253.104: bytes=32 tiempo=104ms TTL=49
Respuesta desde 72.14.253.104: bytes=32 tiempo=101ms TTL=50
Respuesta desde 72.14.253.104: bytes=32 tiempo=104ms TTL=50

Que quede asi en un TXT:

[12:40:2] Respuesta desde 72.14.253.104: bytes=32 tiempo=105ms TTL=50
[12:40:3] Respuesta desde 72.14.253.104: bytes=32 tiempo=105ms TTL=50
[12:40:4] Respuesta desde 72.14.253.104: bytes=32 tiempo=105ms TTL=50

Gracias

Saludos.


Título: Re: Ping en .bat
Publicado por: leogtz en 22 Junio 2010, 20:20 pm
Lo que podemos hacer es esto:

Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. if exist "file.txt" (del /f /q "file.txt")
  4. for /f "tokens=*" %%_ in ('ping google.com') do (
  5. echo !time! % style="color: #448888;">%_ | findstr /r /i "respuesta" >> "file.txt"
  6. )
  7. type "file.txt"
  8. set /p "=END";
  9. exit /b 0

Código:
C:\>code
13:19:03.29 Respuesta desde 66.102.7.104: bytes=32 tiempo=55ms TTL=58
13:19:03.32 Respuesta desde 66.102.7.104: bytes=32 tiempo=56ms TTL=58
13:19:03.35 Respuesta desde 66.102.7.104: bytes=32 tiempo=56ms TTL=58
13:19:03.39 Respuesta desde 66.102.7.104: bytes=32 tiempo=67ms TTL=58
ENDcode

C:\>code
13:19:09.71 Respuesta desde 66.102.7.99: bytes=32 tiempo=53ms TTL=58
13:19:09.75 Respuesta desde 66.102.7.99: bytes=32 tiempo=54ms TTL=58
13:19:09.78 Respuesta desde 66.102.7.99: bytes=32 tiempo=53ms TTL=58
13:19:09.81 Respuesta desde 66.102.7.99: bytes=32 tiempo=53ms TTL=58
END

C:\>code
13:19:16.25 Respuesta desde 66.102.7.104: bytes=32 tiempo=56ms TTL=58
13:19:16.26 Respuesta desde 66.102.7.104: bytes=32 tiempo=54ms TTL=58
13:19:16.29 Respuesta desde 66.102.7.104: bytes=32 tiempo=52ms TTL=58
13:19:16.32 Respuesta desde 66.102.7.104: bytes=32 tiempo=55ms TTL=58
ENDcode

C:\>code
13:19:22.64 Respuesta desde 66.102.7.99: bytes=32 tiempo=53ms TTL=58
13:19:22.67 Respuesta desde 66.102.7.99: bytes=32 tiempo=54ms TTL=58
13:19:22.70 Respuesta desde 66.102.7.99: bytes=32 tiempo=55ms TTL=58
13:19:22.71 Respuesta desde 66.102.7.99: bytes=32 tiempo=54ms TTL=58
END

Cualquier duda aquí estamos.

Pd: ¿Con qué propósito haces los ping s?


Título: Re: Ping en .bat
Publicado por: FranciskoAsdf en 23 Junio 2010, 03:05 am
Así queda  como él quiere:

Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. Set "NoSegs=%Time%"
  4. Set "tiempo=%NoSegs:~0,5%"
  5. if exist "file.txt" (del /f /q "file.txt")
  6. for /f "tokens=*" %%_ in ('ping google.com') do (
  7. echo [!tiempo!] % style="color: #448888;">%_ | findstr /r /i "respuesta" >> "file.txt"
  8. )
  9. type "file.txt"
  10. set /p "=END";
  11. exit /b 0
  12.  

Salida:

Código:
[21:04] Respuesta desde 74.125.67.106: bytes=32 tiempo=169ms TTL=51
[21:04] Respuesta desde 74.125.67.106: bytes=32 tiempo=167ms TTL=51
[21:04] Respuesta desde 74.125.67.106: bytes=32 tiempo=168ms TTL=50
[21:04] Respuesta desde 74.125.67.106: bytes=32 tiempo=166ms TTL=51
END

Agregas las variables NoSegs y tiempo para quitar los segundos y las milésimas de la hora, y se agregan los corchetes para que se vea como tu quieres :)


Saludos.-


Título: Re: Ping en .bat
Publicado por: leogtz en 23 Junio 2010, 07:50 am
Así queda  como él quiere:

Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. Set "NoSegs=%Time%"
  4. Set "tiempo=%NoSegs:~0,5%"
  5. if exist "file.txt" (del /f /q "file.txt")
  6. for /f "tokens=*" %%_ in ('ping google.com') do (
  7. echo [!tiempo!] % style="color: #448888;">%_ | findstr /r /i "respuesta" >> "file.txt"
  8. )
  9. type "file.txt"
  10. set /p "=END";
  11. exit /b 0
  12.  

Salida:

Código:
[21:04] Respuesta desde 74.125.67.106: bytes=32 tiempo=169ms TTL=51
[21:04] Respuesta desde 74.125.67.106: bytes=32 tiempo=167ms TTL=51
[21:04] Respuesta desde 74.125.67.106: bytes=32 tiempo=168ms TTL=50
[21:04] Respuesta desde 74.125.67.106: bytes=32 tiempo=166ms TTL=51
END

Agregas las variables NoSegs y tiempo para quitar los segundos y las milésimas de la hora, y se agregan los corchetes para que se vea como tu quieres :)


Saludos.-

Pero si es exactamente igual a mi código.  :P