Resultados do arquivo de log de ping divididos em segunda linha

1

Estou tentando persistentemente fazer ping em um destino, digamos, google.co.uk, para determinar a confiabilidade da Internet em um dos meus locais. Estou realizando esse teste de ping por cerca de um mês para saber se a internet entre 6h e 10h e 16h e 19h vai se adequar à transferência de áudio ao vivo nos horários de maior movimento para o tráfego da Internet no dia .

Estou recebendo um arquivo de log irritante ...:

Com meu código no arquivo bat:

FOR /f "tokens=1-8 delims=:./ " %%G IN ("%date%_%time%") DO (SET datetime=%%G%%H%%I_%%J_%%K)

ping google.co.uk -t |find /v ""|cmd /q /v:on /c "for /l %%a in (0) do (set "data="&set /p "data="&if defined data echo(!time! !data!)" >> D:\filename_%time:~0,2%%time:~3,2%-%date:~-10,2%%date:~3,2%%date:~-4,4%.txt'

Está produzindo:

18:23:07.24 Reply from 216.58.198.227: bytes=32 time 18:23:07.24 =12ms TTL=54 18:23:08.24 Reply from 216.58.198.227: bytes=32 time 18:23:08.24 =12ms TTL=54 18:23:09.24 Reply from 216.58.198.227: bytes=32 time 18:23:09.24 =12ms TTL=54

Onde o resultado é dividido em duas linhas ... O que estou fazendo errado? E existe uma solução?

Obrigado antecipadamente.

    
por Jon Talbot 09.03.2017 / 22:45

2 respostas

0

Eu uso o seguinte arquivo em lote para um propósito semelhante:

@echo off

set HostToPing="google.com"

:loop
set datetime=%date% %time%
for /f "tokens=9" %%g in ('ping %HostToPing% ^| find "Average ="') do echo %datetime% %%g >>ping_times.txt
timeout /t 120
goto loop
    
por 09.03.2017 / 23:17
0

Leia aqui . Esse comportamento é causado por um problema de sincronização. O set /p no lado direito do canal que lê dados da saída ping inicia uma operação de leitura enquanto o ping está sendo gravado, mas ainda não enviou um retorno de carro.

Mas o código na resposta indicada (manter um ping contínuo para uma única máquina nomeada) só faz sentido se você quiser manter o ping em execução em uma única máquina precisa, evitando qualquer resolução de nome adicional, round dns robin, ... apenas para pingar o tempo todo contra uma única máquina.

Mas se, como declarado, você quiser testar a conexão com a Internet, não a máquina de destino, um simples arquivo de lote (por exemplo, do moonpoint resposta ) é uma opção melhor.

    
por 10.03.2017 / 08:00