Недавно у меня были проблемы с подключением к интернету.Чтобы найти проблему в цепочке, я посмотрел код, который нашел в Интернете.Я никогда раньше не писал код для пакетного файла, так что просто продолжайте и ожидайте, что я узнаю что-нибудь.Во всяком случае, я немного поигрался с этим и выяснил, что делает каждая из линий ... по крайней мере, до некоторой степени.Теперь результаты, которые я получаю из этого файла, также включены ниже.Что я хочу сделать, это написать отдельный файл, который я могу запустить, который берет результаты из первого файла и фильтрует их в новый текстовый файл.
Я уже просмотрел некоторые примеры, которые нашел здесь, но я не хочу просто копировать вставку (не то, чтобы такое решение работало ... Я пытался, чтобы я мог перепроектироватьэто, но безрезультатно).Я нашел несколько примеров того, как получить данные из файла, используя FOR и FOREACH-Object, но это мало что значит для меня, и я не могу заставить его работать.
Короче, я быкак данные проверки связи, которые помещаются в первый текстовый файл, который будет отфильтрован пакетным файлом, поэтому он отправляет только часть текста в новый текстовый файл.Возможно ли что-нибудь подобное, и если да, то как мне это сделать?Некоторое объяснение того, как это работает, было бы здорово, так как мне нравится разбирать код на части и играть с ним.
Код, который я использую для получения данных проверки связи при обнаружении ошибки соединения, приведен ниже.Я не говорю, что это работает отлично, главным образом потому, что я не на 100% знаю, как работает% SystemRoot% -part ... Но пока каждый раз, когда он срабатывает, он также находит тайм-аут запроса.Я открыт для предложений по улучшению этого, но я бы хотел сосредоточиться на отмеченной проблеме извлечения из одного файла и отправки его в другой.
:Loop
::Starting up the loop
PING -n 5 127.0.0.1 > NUL
::Set the ping delay
set Address=google.com
::Set the address to ping to google.com
%SystemRoot%\system32\ping.exe -n 1 %Address%|%SystemRoot%\system32\find.exe "TTL=" > NUL
::Check the connection
if %ERRORLEVEL% EQU 0 goto Loop
::If no error, return to Loop
::So if error, continue to next statement
echo Pinging %Address% >> D:\pingtest\Test\logfiletest.log
::Echo the pinging action
echo Trace route %Address% at %date% %time% >>
D:\pingtest\Test\logfiletest.log
::Echo the route to trace and the timestamp
tracert %Address% >> D:\pingtest\Test\logfiletest.log
::Echo the pinging and results
echo. >> D:\pingtest\Test\logfiletest.log
::Nextline
goto Loop
::Return to Loop
Вот результаты, которые я получаючто я пытаюсь отфильтровать новый файл.
Pinging google.com
Trace route google.com at Fri 05/24/2019 10:22:40.92
Tracing route to google.com [172.217.168.238]
over a maximum of 30 hops:
1 <1 ms <1 ms <1 ms MyLocation
2 13 ms 12 ms 13 ms 195.190.228.150
3 * * * Request timed out.
4 7 ms 10 ms 8 ms 139.156.127.75
5 7 ms 8 ms 9 ms 108.170.241.193
6 15 ms 18 ms 17 ms 72.14.238.245
7 8 ms 7 ms 7 ms ams16s31-in-f14.1e100.net [172.217.19.206]
Trace complete.
Так что это результат, который я сейчас получаю из пакетного файла, который я сделал, посмотрев предложенный код для другой проблемы.Теперь я хотел бы увидеть что-то вроде следующего:
Trace route google.com at Fri 05/24/2019 10:22:40.92
3 * * * Request timed out.
5 7 ms 8 ms 9 ms 108.170.241.193
. В качестве примеров я беру строки 3 и 5, потому что они часто возвращают 'Время ожидания запроса'