Windows Ping should return only the response values

4

I am making a script and need Ping or Fping in windows to return only the time values, without ms , type:

ping 8.8.8.8

Disparando 8.8.8.8 com 32 bytes de dados:
Resposta de 8.8.8.8: bytes=32 tempo=29ms TTL=58
Resposta de 8.8.8.8: bytes=32 tempo=26ms TTL=58
Resposta de 8.8.8.8: bytes=32 tempo=21ms TTL=58
Resposta de 8.8.8.8: bytes=32 tempo=29ms TTL=58

Estatísticas do Ping para 8.8.8.8:
    Pacotes: Enviados = 4, Recebidos = 4, Perdidos =
             perda),
Aproximar um número redondo de vezes em milissegundo
    Mínimo = 21ms, Máximo = 29ms, Média = 26ms

Instead of this output, I only need:

29
26
21
29

Can I do this in a bat?

    
asked by anonymous 04.05.2014 / 22:09

2 answers

3

Do the following:

 
@echo off
for /f "tokens=* delims= " %%i in ('ping -n 1 bing.com^|find "ms"') do set "tempo=%%i"
echo.%tempo%
PAUSE

The result should look similar to this:

Nowtocaptureonlythedesiredvalues,youcando:

 @echo off for /f "tokens=6* delims==ms" %%i in ('ping -n 4 bing.com^|find "tempo"') do echo %%i PAUSE

Result:

TheForsyntaxcanbefound here >.

    
04.05.2014 / 23:47
1

Although it is not quite what you are looking for, recently I did with the help of this same site a bat that besides registering the latency in real time it shows the maximum and minimum latency recorded.

@EchoOffTitlePing-HumbertoFreitasColor1fmodecon:lines=12cols=39setlocalenableextensionsdisabledelayedexpansion::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::Set"IPServidor=104.16.22.33"
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
set "lowPing=999"
set "highPing=  0"


Echo        ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
Echo        ³ ¯ Calculando...       ³
Echo        ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Echo.
Echo        ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
Echo        ³ ¯ Calculando...       ³
Echo        ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Echo.
Echo        ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
Echo        ³ ¯ Calculando...       ³
Echo        ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ


:doPing

set "ping="

for /f "tokens=9" %%a in ('
ping -n 2 "%IPServidor%" ^|find "ms,"
') do for /f "delims=m " %%b in ("%%a") do set "ping=%%~b"

Cls

if not defined ping  (
Echo.
Echo.
Echo.
Echo.
Echo  ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo  ³ ¯ O servidor nÆo est  respodendo! ³
Echo  ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Echo.
Echo.
Echo.
Echo.
goto :doPing
)

Cls

Set ping=   %ping%
Set ping=%ping:~-3%
if %ping% gtr %highPing% set "highPing=%ping%"
if %ping% lss %lowPing%  set "lowPing=%ping%"

Echo        ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
Echo        ³ ¯ Ping atual:  %ping%ms  ³
Echo        ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Echo.
Echo        ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
Echo        ³ ¯ Ping m¡nimo: %lowPing%ms  ³
Echo        ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Echo.
Echo        ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
Echo        ³ ¯ Ping m ximo: %highPing%ms  ³
Echo        ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

Goto :doPing
    
14.10.2014 / 19:25