Друзья, доброго времени суток!
Имеем батник
@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?