1

Я пытаюсь настойчиво пропинговать пункт назначения, скажем google.co.uk, чтобы определить, насколько надежен интернет в одном из моих мест. Я провожу этот тест ping в течение месяца, чтобы понять, подойдет ли Интернет с 6 до 10, а также с 4 до 19 часов, чтобы передавать живое аудио через него в наиболее загруженное время для интернет-трафика в течение дня. ,

Я получаю раздражающий лог-файл ...:

С моим кодом в файле 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'

Это производит:

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

Где один результат разделен на две строки ... Что я делаю неправильно? И есть ли решение?

Заранее спасибо.

2 ответа2

0

Я использую следующий командный файл для аналогичной цели:

@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
0

Читайте здесь. Такое поведение вызвано проблемой синхронизации. set /p в правой части канала, который считывает данные из вывода ping запускает операцию чтения, пока ping пишет, но еще не отправил возврат каретки.

Но код в указанном ответе (сохранить непрерывный пинг для одной машины с именем) имеет смысл, только если вы хотите, чтобы пинг работал на одной точной машине, избегая любого дополнительного разрешения имен, циклического перебора DNS, ... просто пинговать все время против одной машины.

Но если, как уже говорилось, вы хотите протестировать интернет-соединение, а не целевую машину, лучше использовать простой пакетный файл (например, ответ Moonpoint).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .