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ę.
źródło
Przeczytaj tutaj . To zachowanie jest spowodowane problemem synchronizacji.
set /p
Po prawej stronie rury, które odczytuje dane zping
wyjścia rozpoczyna operację odczytu, gdyping
pisze, 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ą.
źródło