@Illium

Почему findstr в батнике ведёт себя неадекватно?

Друзья, доброго времени суток!

Имеем батник
@set iptoping=127.0.0.1
@set pdir=C:\pinglog
@echo Пингуем %iptoping% пакетами по 5000 байт с выводом в %pdir%\ping_%iptoping%.log. Для завершения закройте окно.
@MD %pdir%
@>"%pdir%\ping_%iptoping%.log" (
 for /l %%i in () do @>nul chcp 866& ping -l 5000 -n 1 %iptoping%| findstr /i "Превышен Заданный"|(
 for /f "delims=" %%j in ('more') do @>nul chcp 866& cmd/v/c "echo.!date! !time:~0^,8! %%j")
)

В таком виде findstr ищет в выводе команды ping строки, содержащие в себе "Превышен" или "Заданный", записывает строку в переменную, а после с датой и временем выводит в файл.
Однако стоит добавить (или заменить) "Ответ", чтобы команда приняла следующий вид
findstr /i "Превышен Заданный Ответ"
и в случае доступности адреса (получения ответа) в окно командной строки начинает сыпаться вывод
Не удаётся найти указанный файл
Лог при этом записывается адекватно на первый взгляд (т.е. "date time Ответ от ...", только вот строк в нём гораздо меньше, чем строк спама в командной строке.

Господа, вопрос один - какой файл он ищет и почему не может его найти? Вопрос два - как запретить ему (или скрыть сообщения) спамить в окно командной строки? Вопрос три - можно ли моей ленивой жопе показать пример того же для PowerShell?
  • Вопрос задан
  • 169 просмотров
Решения вопроса 1
@res2001
Developer, ex-admin
Немного переделал, как мне представлялось правильным - должен выводить в лог дату/время когда узел недоступен.
@echo off
set "iptoping=127.0.0.1"
set "pdir=C:\pinglog"
echo Пингуем %iptoping% пакетами по 5000 байт с выводом в %pdir%\ping_%iptoping%.log. Для завершения закройте окно.
1>nul 2>&1 md %pdir%
>"%pdir%\ping_%iptoping%.log" (
for /l %%i in () do (
   for /f "delims=" %%a in ('ping -l 5000 -n 1 %iptoping% ^| findstr "Превышен Заданный Ответ" ') do echo.%date% %time:~0,8% %%a
  )
)

Не могу понять нафига в пинге параметр -l?
И все таки нужно воткнуть паузу, а то получается какая-то DoS атака.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Leningrad Media Москва
от 150 000 до 170 000 ₽
N.Academy Москва
от 100 000 ₽
vivaCRM Москва
от 200 000 до 250 000 ₽
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект