Resultados do arquivo de log de ping divididos em segunda linha


1

Estou tentando persistentemente fazer um ping em um destino, digamos, google.co.uk, para determinar a confiabilidade da Internet em um dos meus locais. Estou realizando este 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 mais movimentados 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?

Desde já, obrigado.

Respostas:


0

Eu uso o seguinte arquivo em lotes 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

Obrigado por voltar para mim. Eu tentei isso, mas ele já está quebrado meu PC uma vez. Ele apenas pendurou a janela cmd, executando vários processos cmd e outro processo que agora não consigo lembrar o nome de ... :-( Ele também não deu saída para nada depois que eu ajustei o caminho para colocar o log. Ainda leio o seu site para progredir com ele, continuo sendo chamado para fazer outras coisas, informando o progresso que eu faço.
Jon Talbot

0

Ler Aqui . Esse comportamento é causado por um problema de sincronização. o set /p no lado direito do tubo que lê dados do ping saída inicia uma operação de leitura enquanto o ping está escrevendo, 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 rodando 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 dito, você quiser testar a conexão com a Internet, não a máquina alvo, um simples arquivo de lote (ex. responda ) é uma opção melhor.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.