Wyniki pliku dziennika ping podzielone na drugą linię

1

Próbuję wytrwale pingować miejsce docelowe, powiedzmy google.co.uk, aby ustalić, jak niezawodny jest Internet w jednej z moich lokalizacji. Przeprowadzam ten test ping przez około miesiąc, aby dobrze zorientować się, czy Internet między 6 rano a 10 rano, a 16:00 i 19:00 będzie odpowiedni do przesyłania audio na żywo w najbardziej ruchliwym czasie dla ruchu internetowego w ciągu dnia .

Dostaję irytujący plik dziennika ...:

Z moim kodem w pliku nietoperza:

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'

Wytwarza:

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

Gdzie jeden wynik jest podzielony na dwie linie ... Co robię źle? Czy jest jakieś rozwiązanie?

Z góry dziękuję.

Jon Talbot
źródło

Odpowiedzi:

0

Korzystam z następującego pliku wsadowego w podobnym celu:

@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
punkt księżycowy
źródło
Dziękuję, że do mnie wróciłeś. Próbowałem tego, ale już raz zepsuł mi się komputer. Po prostu zawiesił okno cmd, uruchamiając wiele procesów cmd i innego procesu Nie pamiętam teraz nazwy ... :-( Nie wyszedł również na nic po dostosowaniu ścieżki, aby umieścić dziennik. jeszcze nie przeczytałem waszej strony, aby z nią postępować, ciągle jestem wezwany do robienia innych rzeczy. Dam wam znać, jakie dalsze postępy robię. Jeszcze raz dziękuję
Jon Talbot
0

Przeczytaj tutaj . To zachowanie jest spowodowane problemem synchronizacji. set /pPo prawej stronie rury, które odczytuje dane z pingwyjścia rozpoczyna operację odczytu, gdy pingpisze, ale nadal nie wysłać znak powrotu karetki.

Ale kod we wskazanej odpowiedzi (utrzymuj ciągły ping do pojedynczej nazwanej maszyny) ma sens tylko wtedy, gdy chcesz, aby ping działał na pojedynczej precyzyjnej maszynie, unikając dodatkowego rozpoznawania nazw, round robin dns, ... po prostu ping cały czas na jednej maszynie.

Ale jeśli, jak wspomniano, chcesz przetestować połączenie internetowe, a nie maszynę docelową, prosty plik wsadowy (np. Odpowiedź moonpoint ) jest lepszą opcją.

MC ND
źródło