This page is hosted for free by zzz.com.ua, if you are owner of this page, you can remove this message and gain access to many additional features by upgrading your hosting to PRO or VIP for just 32.50 UAH.

Windows - Пишем в cmd, bat

Не работает? Начинай читать инструкцию.

Записать выполнение команды ping в файл со временем ? Как создать bat файл ?

Команда ping — утилита для проверки соединений в сети на основе TCP/IP. Чаще всего для обнаружения компьютера в сети мы используем команду ping в командной строке. Но если эта команда должна выполняться продолжительно время, возникает желание записать выполнение команды ping в файл со временем.

Предлагаю ознакомиться с предложениями моих партнёров

Linux - как записать выполнение в файл лог пинга (команда ping) с указанием времени отправки/получения пакета или Destination Host Unreachable ?

Записать выполнение команды ping в файл

Самый простой вариант, это выполнить команду:

ping -t 192.168.0.101 >> C:\logfile.log

Получим такой файл

Ответ от 192.168.0.101: число байт=32 время=3мс TTL=128
Превышен интервал ожидания для запроса.
Ответ от 192.168.0.101: число байт=32 время=36мс TTL=128

При этом если использовать одинарную стрелочку " > ", logfile.log будет перезаписываться, если двойную " >> " - дописываться.

Записать выполнение команды ping в файл со временем

Для этого выполним команду:

for /l %i in (0,0,1) do @cmd /c "echo.|set/p=%TIME:~0,8^%" >> c:\logfile.log & ping -n 1 192.168.0.101 | findstr "Превышен Ответ" >> c:\logfile.log & ping -n 2 localhost > nul

Получим такой файл

14:07:16  Ответ от 192.168.0.101: число байт=32 время=3мс TTL=128
14:07:17  Превышен интервал ожидания для запроса.
14:07:22  Превышен интервал ожидания для запроса.
14:07:27  Ответ от 192.168.0.101: число байт=32 время=117мс TTL=128
14:07:30  Ответ от 192.168.0.101: число байт=32 время=6мс TTL=128

Сразу отмечаю, что файл создаётся в кодировке 866 OEM - русская, поэтому открывать его лучше в программах AkelPad, Notepad++ или других подобных. Блокнот покажет абру кадабру там где кириллица

Создать bat файл и записать выполнение команды ping в файл со временем

Предлагаю ознакомиться с предложениями моих партнёров

Нельзя называть *. bat файлы именами, совпадающими с любыми командами "ping.bat" ("ping.cmd").

Можно так: "пинг.bat" ("пинг.cmd")

Создать файл, например пинг.bat и обязательно сохранить в кодировке 866 OEM - русская

@>"C:\logfile.log" (
 for /l %%i in () do @>nul chcp 866& ping -n 1 192.168.0.101| findstr/i "Превышен Ответ"|(
 for /f "delims=" %%j in ('more') do @>nul chcp 866& cmd/v/c "echo.!time:~0^,8! %%j")
)

Получим такой файл

14:36:48 Ответ от 192.168.0.101: число байт=32 время=7мс TTL=128
14:36:49 Ответ от 192.168.0.101: число байт=32 время=40мс TTL=128
14:36:50 Ответ от 192.168.0.101: число байт=32 время=63мс TTL=128
14:36:52 Превышен интервал ожидания для запроса.
14:36:56 Превышен интервал ожидания для запроса.
14:37:00 Превышен интервал ожидания для запроса.
14:37:05 Ответ от 192.168.0.103: Заданный узел недоступен.
14:37:10 Ответ от 192.168.0.103: Заданный узел недоступен.
14:37:16 Ответ от 192.168.0.103: Заданный узел недоступен.
14:37:19 Ответ от 192.168.0.101: число байт=32 время=40мс TTL=128
14:37:20 Ответ от 192.168.0.101: число байт=32 время=3мс TTL=128

Если команда будет выполняться долго, например сутки, то анализировать такой лог будет довольно сложно.  Так что можно создать такой файл:

@>"C:\logfile.log" (
 for /l %%i in () do @>nul chcp 866& ping -n 1 192.168.0.101| findstr/i "Превышен Заданный"|(
 for /f "delims=" %%j in ('more') do @>nul chcp 866& cmd/v/c "echo.!time:~0^,8! %%j")
)

или так:

@>"C:\logfile.log" (
 for /l %%i in () do @>nul chcp 866& ping -n 1 192.168.0.101| findstr/i "Превышен интервал-Заданный узел"|(
 for /f "delims=" %%j in ('more') do @>nul chcp 866& cmd/v/c "echo.!time:~0^,8! %%j")
)

Получим вот такой файл, в который записываются только строки "Превышен интервал ожидания для запроса" и "Заданный узел недоступен"

15:37:22 Превышен интервал ожидания для запроса.
15:37:26 Превышен интервал ожидания для запроса.
15:37:29 Ответ от 192.168.0.103: Заданный узел недоступен.
15:37:32 Ответ от 192.168.0.103: Заданный узел недоступен.
15:37:35 Ответ от 192.168.0.103: Заданный узел недоступен.
15:38:50 Превышен интервал ожидания для запроса.
15:38:54 Превышен интервал ожидания для запроса.
15:38:58 Превышен интервал ожидания для запроса.
15:39:41 Ответ от 192.168.0.103: Заданный узел недоступен.
15:39:44 Ответ от 192.168.0.103: Заданный узел недоступен.
15:39:47 Ответ от 192.168.0.103: Заданный узел недоступен.

Если очень надо открывать файл logfile.log стандартным блокнотом, то изменяем кодировку в 3-й строке

...('more') do @>nul chcp 1251& cmd...