Я пытаюсь получить командный файл для отображения результатов проверки связи при одновременном входе в текстовый файл. Я нашел следующее решение: { ссылка }. Это делает именно то, что мне нужно, когда все подключено, однако я обнаружил, что окно командной строки / командный файл просто закроется, если произойдет отключение сети, что приведет к «общему отказу» (смоделированному простым отключением моего кабеля Ethe rnet). Я надеюсь, что вывод будет выглядеть примерно так:
Target Host = www.google.com
Pinging www.google.com [172.217.9.36] with 32 bytes of data:
Wed 04/15/2020 11:01:54 Reply from 172.217.4.196: bytes=32 time=46ms TTL=55
Wed 04/15/2020 11:01:55 Reply from 172.217.4.196: bytes=32 time=29ms TTL=55
Wed 04/15/2020 11:01:56 General failure.
Wed 04/15/2020 11:01:57 General failure.
Wed 04/15/2020 11:01:58 Reply from 172.217.4.196: bytes=32 time=29ms TTL=55
Wed 04/15/2020 11:01:59 Reply from 172.217.4.196: bytes=32 time=30ms TTL=55
Wed 04/15/2020 11:02:01 Request timed out.
Wed 04/15/2020 11:02:04 Request timed out.
Wed 04/15/2020 11:02:05 General failure.
Wed 04/15/2020 11:02:06 Reply from 172.217.4.196: bytes=32 time=31ms TTL=55
Для справки код, который я использую ниже, скопирован из связанного поста. Я бы просто оставил комментарий, но я еще не достаточно крут.
echo off
set /p host=host Address:
set logfile=Log_%host%.log
echo Target Host = %host% >%logfile%
for /f "tokens=*" %%A in ('ping %host% -n 1 ') do (echo %%A>>%logfile% && GOTO Ping)
:Ping
for /f "tokens=* skip=2" %%A in ('ping %host% -n 1 ') do (
echo %date% %time:~0,2%:%time:~3,2%:%time:~6,2% %%A>>%logfile%
echo %date% %time:~0,2%:%time:~3,2%:%time:~6,2% %%A
timeout 1 >NUL
GOTO Ping)
Любое изменение - способ обработать эти ошибки в командном файле, чтобы он не обработал sh?