Ping en .bat

Iniciado por ElmoN02, 22 Junio 2010, 19:49 PM

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

ElmoN02

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.

leogtz

Lo que podemos hacer es esto:

Código (dos) [Seleccionar]
@echo off
setlocal enabledelayedexpansion
if exist "file.txt" (del /f /q "file.txt")
for /f "tokens=*" %%_ in ('ping google.com') do (
echo !time! %%_ | findstr /r /i "respuesta" >> "file.txt"
)
type "file.txt"
set /p "=END";
exit /b 0



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

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

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

FranciskoAsdf

Así queda  como él quiere:

Código (dos) [Seleccionar]

@echo off
setlocal enabledelayedexpansion
Set "NoSegs=%Time%"
Set "tiempo=%NoSegs:~0,5%"
if exist "file.txt" (del /f /q "file.txt")
for /f "tokens=*" %%_ in ('ping google.com') do (
echo [!tiempo!] %%_ | findstr /r /i "respuesta" >> "file.txt"
)
type "file.txt"
set /p "=END";
exit /b 0


Salida:


[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.-
Asdf debería ser algún tipo de función.

leogtz

Cita de: Panxin.boo en 23 Junio 2010, 03:05 AM
Así queda  como él quiere:

Código (dos) [Seleccionar]

@echo off
setlocal enabledelayedexpansion
Set "NoSegs=%Time%"
Set "tiempo=%NoSegs:~0,5%"
if exist "file.txt" (del /f /q "file.txt")
for /f "tokens=*" %%_ in ('ping google.com') do (
echo [!tiempo!] %%_ | findstr /r /i "respuesta" >> "file.txt"
)
type "file.txt"
set /p "=END";
exit /b 0


Salida:


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

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

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