Имя: Пароль:
IT
Админ
Написание батника на создание лога пингов и ошибок с временем и датой
0 LastSoldier
 
07.08.17
19:52
Пытаюсь написать батник, но никак не могу вывести в логфайл дату и время.

echo off


set IP="ya.ru"
set Logtest="C:\log_test.txt"

date /t > %Logtest%


echo %TIME:~,-3% > %Logtest% & ping %IP% > %Logtest%
pause


Скажите в чем проблема?
В лог пишется только команда ping
1 Looking
 
07.08.17
20:00
А чем ПО PingPlotter не устраивает?
2 Имитация работы
 
07.08.17
20:11
(0) Потому что перенаправление одним уголком перетирает файл. Используй два.
3 LastSoldier
 
07.08.17
20:16
(1) наверно тем что на каждый комп надо ставить еще стороннее ПО.
(2) спс за подсказку, я получается просто все перезаписывал командой ping)

Дальше вот в цикле пытаюсь добавить в начало строки "Ответ от 87.250.250.242: число байт=32 время=38мс TTL=53" время, но батник вообще не  отрабатывает.
Где в цикле проблема?
echo on


set IP="ya.ru"
set Logtest="C:\log_test.txt"

echo %DATE%-%TIME:~,-3% > %Logtest%

FOR /f "tokens=1*" %%i IN ('ping %IP%') DO (
echo %TIME:~,-3% >> %Logtest% & ping %IP% >> %Logtest%) %%i

::echo %TIME:~,-3% >> %Logtest% & ping %IP% >> %Logtest%
pause
4 LastSoldier
 
07.08.17
20:57
Все работает, да не очень правильно, мне надо чтобы пинговалось один раз в секунду, а оно раз 10 в одну секунду пингует

echo on


set IP="ваваa.ru"
set Logtest="C:\log_test.txt"

echo %DATE%-%TIME:~,-3% > %Logtest%

@:begin
FOR /f "tokens=1*" %%i IN ('ping -n 1 %IP%^| findstr /i "TTL Превышен"') DO set n="%%i %%j"

@if defined n (goto log)
set n="The disconnection">> %Logtest%
@:log
echo %n%
echo %TIME:~,-3% %n% >> %Logtest%
@goto begin

pause
5 LastSoldier
 
07.08.17
20:59
(4) это пример для ошибки пинга, вместо "set IP="ваваa.ru"" вот это "set IP="ya.ru""
6 LastSoldier
 
07.08.17
21:27
Как поставить задержку между пингами?
7 Fram
 
07.08.17
21:39
(6) timeout
8 Йохохо
 
07.08.17
21:49
ping /?
9 LastSoldier
 
07.08.17
23:32
(7) спс, то что надо.
Теперь надо разбить результат на два файла, в одном пишется пинг, а в другом только разрывы.

echo on

set IP="ya.ru"
set Logbad="C:\log_bad.txt"
set Logok="C:\log_ok.txt"

echo %DATE%-%TIME:~,-3% > %Logok%
echo %DATE%-%TIME:~,-3% > %Logbad%

@:begin
FOR /f "tokens=1*" %%i IN ('ping -n 1 %IP%^| findstr /i "TTL Превышен"') DO set n="%%i %%j"

@if defined n (goto log)
set n="The disconnection"
echo %n%
echo %TIME:~,-3% %n% >> %Logbad%
@goto begin
@:log
echo %n%
echo %TIME:~,-3% %n% >> %Logok%
TIMEOUT  /T 1
@goto begin
10 LastSoldier
 
07.08.17
23:35
Результат действия этого батника такой:
Он пишет первый дисконнект в файл %Logbad%, а все остальные дисконнекты файл %Logok%.
Не могу найти где ошибся
11 LastSoldier
 
07.08.17
23:52
добавил строку
set n=
ниже echo %TIME:~,-3% %n% >> %Logbad%
Вроде все работает
12 LastSoldier
 
07.08.17
23:55
Только я не могу понять прикола, почему когда я отключаю сетевую карту, пинговаться яндекс все равно продолжает
Это как так?
13 LastSoldier
 
08.08.17
00:20
(8) Если Вы про -w 1000, то это не работает
14 LastSoldier
 
08.08.17
12:37
echo off

set IP="ya.ru"
set Logbad="C:\log_bad.txt"
set Logok="C:\log_ok.txt"


echo %DATE%-%TIME:~,-3% > %Logok%
echo %DATE%-%TIME:~,-3% > %Logbad%

@:begin
set n=
FOR /f "tokens=1*" %%i IN ('ping -n 1 %IP%^| findstr /i "TTL Превышен"') DO set n="%%i %%j"

@if defined n (goto log)
set n="The disconnection"
echo %n%
echo %TIME:~,-3% %n% >> %Logbad%
@goto begin
@:log
echo %n%
echo %TIME:~,-3% %n% >> %Logok%
TIMEOUT  /T 1
@goto begin

если кому надо, это уже рабочий вариант
15 Тихий омут
 
08.08.17
12:56
(14) спасибо, как раз актуально
16 Злопчинский
 
08.08.17
12:58
Ой, у меня сисадмин как-то проще сделал, выйдет из отпуска - попытаю если не забуду
17 Вафель
 
08.08.17
13:10
переходи на js )))
18 LastSoldier
 
09.08.17
21:09
(17) в смысле на js переходи?
Я js на работе вообще никому не ставлю кроме бухгалтера, для работы с банком.
(16) буду рад посмотреть другие варианты
19 Lama12
 
09.08.17
21:18
(18) js Ява скрипт. Он в Винде есть по умолчанию.
20 mistеr
 
09.08.17
21:45
(14) "bad" — это не только таймаут. Еще бывают потери пакетов (не пингов, а других), неприемлемое время отклика, дисконнект кабеля (при котором VPN остается connected) и т.д. и т.п. Как все будешь анализировать?
21 LastSoldier
 
11.08.17
09:28
(20) Батник показывает обрывы:
1)При отключении кабеля
2)При превышении интервала ожидания
3) "дисконнект кабеля (при котором VPN остается connected)"- не знаю как у Вас, но у меня при дисконнекте кабеля VPN не остается connected. Это то же учитывается

Единственные, что это не показывается, это какая причины разрыва была.
Большой пинг я не учитываю вообще.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший