Windows Ping should return only response values

Asked

Viewed 1,007 times

5

I’m doing a script and I need you to Ping or Fping in windows return only the values of time, without the ms, guy:

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 exit, I just need :

29
26
21
29

I can do that in a bat?

2 answers

4

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 must be similar there is this:

inserir a descrição da imagem aqui

Now to capture only the desired values, you can do:

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

Upshot:

inserir a descrição da imagem aqui

The syntax of the loop For can be found here.

2

Although not quite what you are looking for, recently I made with the help of this same site a bat that in addition to recording the latency in real time the same shows the maximum and minimum latency recorded.

inserir a descrição da imagem aqui

@Echo Off
Title Ping - Humberto Freitas
Color 1f
mode con:lines=12 cols=39
setlocal enableextensions disabledelayedexpansion
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
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

Browser other questions tagged

You are not signed in. Login or sign up in order to post.