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

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

Ответить
Настройки темы
CMD/BAT - [решено] Пинг с последующим исключением

Аватара для root221

Старожил


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

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


Здравствуйте,

Нужен скриптик который будет пинговать адреса из списка Spisok.txt и все адреса которые доступны, нужно что-бы заносились в список Alive.txt а все которые не доступны, в список Err.txt, ну и общий список all_test.txt в который нужно заносить все адреса, которые были проверены скриптом.

Далее.

Нужно что бы когда всё проверилось и я добавил в Spisok.txt новые адреса то те адреса которые уже были проверены ранее и присутствуют в списке all_test.txt, больше не проверялись и из списка Spisok.txt проверялись только те, которых ещё нет в списке all_test.txt

Пока на этом всё, жду ваших вариантов, Заранее благодарен!

Отправлено: 20:40, 19-03-2012

 

Ветеран


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

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


root221,
Код: Выделить весь код
@echo off
setlocal

if not exist all_test.txt 1>all_test.txt echo 127.0.0.1
for /f %%i in (' findstr /v /g:all_test.txt spisok.txt ') do (

    1>>all_test.txt echo %%i
    1>nul ping -n 1 %%i && 1>>alive.txt echo %%i || 1>>err.txt echo %%i

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

Отправлено: 22:20, 19-03-2012 | #2



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

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


Аватара для root221

Старожил


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

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


ничего не понял(

вот список

Код: Выделить весь код
127.0.0.1:123
127.0.0.2:123
127.0.0.3:123
нужно сделать delims=:

проверять пинги адресов из списка Spisok.txt...

те адреса которые доступны нужно заносить в список alive.txt

которые не доступны в список err.txt

все которые проверились в список all_test.txt

потом я обновлю списк Spisok.txt и там могут быть совпадения что бы их убрать нужно сравнить списк all_test.txt и убрать совпадения из списка Spisok.txt а потом начать сканировать только те адреса которых ещё нет в списке all_test.txt и добавлять новые которые будут отсканированы из списка Spisok.txt в список all_test.txt, и так каждый раз

Отправлено: 23:10, 19-03-2012 | #3


Ветеран


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

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


Цитата root221:
вот список »
А что за ":123" ? У меня без этого все работает.

Код: Выделить весь код
@echo off
setlocal

if not exist all_test.txt 1>all_test.txt echo 127.0.0.1:123
for /f "tokens=1,2 delims=:" %%i in (' findstr /v /g:all_test.txt spisok.txt ') do (

    1>>all_test.txt echo %%i:%%j
    1>nul ping -n 1 %%i && 1>>alive.txt echo %%i:%%j || 1>>err.txt echo %%i:%%j

)

Последний раз редактировалось Foreigner, 19-03-2012 в 23:32.

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

Отправлено: 23:24, 19-03-2012 | #4


Аватара для root221

Старожил


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

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


Цитата Foreigner:
А что за ":123" ? У меня без этого все работает. »
порт

не могу понять зачем тут

Код: Выделить весь код
if not exist all_test.txt 1>all_test.txt echo 127.0.0.1:123
127.0.0.1 это пример)))) адреса могут быть другими

у меня он не работает

Ошибка findstr

Отправлено: 03:35, 20-03-2012 | #5


Аватара для root221

Старожил


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

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


В общем вот...

Код: Выделить весь код
For /F "tokens=1,2 delims=:" %%A In (List.lst) Do (
ping -a -n 2 -w 400 %%A|Find /I "TTL=">nul&&(
Echo %%A - OK
Echo %%A>>List_Yes.lst
)||(
Echo %%A - Error
Echo %%A>>List_No.lst
)
)
нужно просто всегда сравнивать List_No.lst и основной список который будет обновляться List.lst, на совпадения и если они есть тогда чистить List.lst от адресов которые уже ранее были проверены.

Отправлено: 03:53, 20-03-2012 | #6


Ветеран


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

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


Цитата root221:
не могу понять зачем тут »
На случай если нет файла all_test.txt, он создается, а 127.0.0.1:123 просто чтобы в этом файле была строка, любая строка.

Цитата root221:
В общем вот... »
У меня тоже самое. Но в цикле findstr забирает из spisok.txt только те строки, которых нет в all_test.txt
Код: Выделить весь код
findstr /v /g:all_test.txt spisok.txt

Отправлено: 06:41, 20-03-2012 | #7


Аватара для root221

Старожил


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

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


Foreigner, странно добавляю в spisok.txt адреса вида 127.0.0.1:1234, запускаю ваш скрипт и он тупо закрывается, мельком в лаге удалось мне прочитать что какая-то ошибка в findstr

если что моя OS: WinXP SP3

всё.. я разобрался

можно ещё сделать что бы всё выводилось в консоль? что-бы я видел как идёт сканирование и с нумерацией

примерно так..

[1/999] 127.0.0.1:123
[2/999] 127.0.0.2:1234
[3/999] 127.0.0.1:12345

ну и в конце пауза с сообщением..

Код: Выделить весь код
echo Сканирование завершено - Теперь можно закрыть консоль.

Последний раз редактировалось root221, 20-03-2012 в 14:09.


Отправлено: 14:00, 20-03-2012 | #8


Аватара для Delirium

Ветеран


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

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


Цитата root221:
мельком в лаге удалось мне прочитать »
в самом конце скрипта напиши pause и увидишь полный текст ошибки.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 14:11, 20-03-2012 | #9


Аватара для root221

Старожил


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

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


Delirium, я же написал уже что разобрался и попросил доделать немного.

Отправлено: 15:25, 20-03-2012 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] Архивация файлов с последующим удалением Romano Скриптовые языки администрирования Windows 5 23-03-2011 18:03
Искажение с последующим зависанием sylar3000 Непонятные проблемы с Железом 3 12-04-2010 14:01
MFC - Какие установки в VS2005 для консольного приложения с исключением в связях mfc80u.dll Viacheslav8 Программирование и базы данных 2 05-05-2009 17:25
C/C++ - Си и функция рандома с последующим выводом. ElHalcone Программирование и базы данных 2 12-12-2008 21:13
захват DV с последующим сжатием... el dorado Видео и аудио: обработка и кодирование 3 23-08-2005 14:17




 
Переход