Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Пинг в лог

Ответить
Настройки темы
CMD/BAT - Пинг в лог

Пользователь


Сообщения: 84
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго времени суток!

Имеется небольшая серия команд (ниже) - необходимо чтобы пользователь неискушенный набором команд ручками просто запускал батник с рабочего стола, а результаты команд писались в лог, пусть на тот же рабочий стол для дальнейшего изучения. У меня почему то окно во время запуска мигает :-)

Серия команд:

Ping (ip-адрес) -n 50
зафиксировать среднее время и процент потерь в лог

Ping (ip-адрес) -n 50 -l 1024
зафиксировать среднее время и процент потерь в лог


Наверное лучше чтобы лог не затирался каждый раз при запуске, а сохранялся с порядковым номеров: Лог1, лог2, лог3, а то запустит юзер батник когда уже связи нет и затрет лог с данными, будет он 100% потерь :-). Номер можно хранить скажем в текстовом файле, при запуске открывать для чтения текущего значения из него.

Отправлено: 20:22, 02-05-2010

 

Ветеран


Contributor


Сообщения: 2726
Благодарности: 1696

Профиль | Отправить PM | Цитировать


Вот в первом приближении решение. В подпрограмму PingInLog передаём ip, значения параметров n и l.
В лог-файле с именем дата-время.лог получаем строку с интересующими Вас сведениями.
Не уверен в универсальности в зависимости от ОС. У меня русская Win XP. Явно для английской версии надо другие сравнения. Что касается имени лог-файла, то, наверное, лучше его не создавать заново с разными именами (как я сделал в этом примере под Вашим давлением), а создавать заново каждый день и пополнять его в течение дня - я в лог-файле прописал имя пользователя и дату-время получения результата. Можно в одном файле тогда отследить хронику событий.
Код: Выделить весь код
Echo Off

Call :PingInLog 156.156.204.1 5 1024

GoTo End

:PingInLog

Set U=%UserName%
Set U1='
Set U2='

For /F "usebackq tokens=1,2,3,4* delims=," %%i in (`ping %1 -n %2 -l %3`) Do (

   For /F "usebackq tokens=1,2,3*" %%a in ('%%i') Do (
      If "%%a %%b"=="Обмен пакетами" Set U=%U% %%a %%c %%d
   )

   For /F "usebackq" %%a in ('%%k') Do (
       If "%%a"=="потеряно" Set U1=%%k 
    )

   For /F "usebackq" %%a in ('%%k') Do (
       If "%%a"=="Среднее" Set U2=%%k 
    )

)

Set Log=%Date:~6,4%%Date:~3,2%%Date:~0,2%-%Time:~0,2%%Time:~3,2%%Time:~6,2%.log

Echo %U%%U1%из %2.%U2% %Date% %Time%>%Log%

:End
Чтобы выдать файл на рабочий стол, надо последнее Эхо изобразить в виде:
Echo %U%%из %2.% %Date% %Time%>"C:\Documents and Settings\All Users\Рабочий стол\%Log%"

Последний раз редактировалось megaloman, 03-05-2010 в 20:47. Причина: Исправление

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:08, 03-05-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Пользователь


Сообщения: 84
Благодарности: 0

Профиль | Отправить PM | Цитировать


Совершенно верно, нужно дописывать в файл, зачем усложнять ... я чтот не подумал

приму Ваш вариант, так как я примерно обрисовал задачу, а лучшее решение за Вами :-).
Жду конечно варианта - всё гениальное просто

спасибо забыл сказать

Отправлено: 19:11, 03-05-2010 | #3


Ветеран


Contributor


Сообщения: 2726
Благодарности: 1696

Профиль | Отправить PM | Цитировать


Совершенно не представляю, почему строка, которая должна быть у меня в тексте
Echo %U%%из %2.% %Date% %Time%>%Log%

в ответе выглядело неверно
Echo %U%%из %2.% %Date% %Time%>%Log% - это неверно!!!!

Чтобы дописывать строки в ежедневный файл надо вместо последнего Set и Echo написать

Set Log=%Date:~6,4%%Date:~3,2%%Date:~0,2%.log
Echo %U%%из %2.% %Date% %Time%>>%Log%

Отправлено: 20:43, 03-05-2010 | #4


Ветеран


Contributor


Сообщения: 2726
Благодарности: 1696

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: txt PingLog.txt
(811 байт, 108 просмотров)

Я не понимаю, в чем дело, но при передаче на сайт код искажается. Поэтому берите текст в прикреплённом файле.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:58, 03-05-2010 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Пинг в лог

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Обычный пинг, но нужно что бы все что там он пишет в окне дублировалось в лог-файл registeruser1 Скриптовые языки администрирования Windows 25 14-03-2011 11:11
Интернет - Пинг проходит, но страницы не грузяться alzasr Microsoft Windows Vista 2 08-01-2010 16:39
Пинг Bohdan_jinesis Хочу все знать 3 26-07-2009 15:01
Proxy/NAT - Пинг идет INETA нету? freej-r Сетевые технологии 2 24-08-2008 00:27
пинг/ping Farru Сетевые технологии 2 06-04-2007 21:29




 
Переход