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

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

Ответить
Настройки темы
CMD/BAT - пинг группы адресов и запись первого удачного в файл в конкретное место.

Новый участник


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

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


имеем
192.168.5.1-254
192.168.8.1-254
первый ответивший записываем в файл 111.ini на место 192.168.?.?

111.ini имет вид
IP=192.168.?.?
Port=1234
и т.д.

Отправлено: 21:37, 03-12-2011

 

Аватара для zion87

Старожил


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

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


вообщем сам пока не сильно разбираюсь во всем этом деле, но могу предложить этот вариант:

Код: Выделить весь код
@echo off
set s=0
set p=5
:start_1
set /a s=%s%+1
if %s%==255 goto next_ip
ping -n 1 -l 5 10.108.%p%.%s%|Find /I "TTL="|| goto start_1
goto read
:next_ip
set s=0
set p=8
:start_2
set /a s=%s%+1
ping -n 1 -l 5 192.168.%p%.%s%|Find /I "TTL="|| goto start_2
if %s%==255 exit
:read
echo fName = "111.ini" >temp.vbs
echo iStrok = 1 >>temp.vbs
echo repTxt = "IP=192.168.%p%.%s%" >>temp.vbs
copy temp.vbs + chang.vbs
start/wait temp.vbs
del temp.vbs
exit
для замены ip в файле 111.ini использовал скрипт chang.vbs скачать его можно здесь

если ссылка не сработает, то вот код из скрипта

Код: Выделить весь код
Set FSO = CreateObject("Scripting.FileSystemObject")
Set F = FSO.OpenTextFile(fName, 1, False)   
AllTxt = F.ReadAll()                        
F.Close                                       
AllTxt = Replace(AllTxt, vbLf, "")          
Mas = Split(AllTxt, vbCr)                      
nStrok = UBound(Mas)         
AllTxt = ""
If nStrok + 1 >= iStrok Then
    Mas(iStrok - 1) = repTxt                  
    For i = 0 To nStrok
        If i <> nStrok Then
            AllTxt = AllTxt + Mas(i) + vbCrLf  
        Else
            AllTxt = AllTxt + Mas(i)         
        End If
    Next
    Set F = FSO.OpenTextFile(fName, 2, False)   
    F.Write AllTxt                             
    F.Close                                
End If

Последний раз редактировалось zion87, 06-01-2012 в 12:10.


Отправлено: 04:33, 06-01-2012 | #2



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

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


Старожил


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

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


Думаю, это именно то, что вам нужно. Первый удачно пропингованный адрес пишется вместо текущего значения IP в 111.ini. Хочу заметить, что при таком способе чтения ini-файла, теряются [секции] и #; комментарии, если они у вас есть.
Я тестировал с ini-файлом такого вида:
Код: Выделить весь код
IP=127.0.0.1
Port=1234
Test1=111
Test2=222
А вот сам скрипт:
Код: Выделить весь код
@Echo Off
SetLocal EnableDelayedExpansion
Set CfgFile=111.ini
Call :ReadCfg
Call :Pinger 192.168.5 192.168.8
Pause
Exit

:Pinger
If "%1"=="" Exit /B
For /L %%I In (1,1,254) Do (
	Ping -n 1 %1.%%I|Find /I "TTL=">nul&&(
		Set IP=%1.%%I
		Call :WriteCfg
		Exit /B
	)
)
Shift
GoTo Pinger


:: ==Чтение-запись в key-value файл c сохранением порядка строк=
:: Anonymous, 2011
:ReadCfg
If Not Exist %CfgFile% (Exit 1)
Set i=0
For /F "tokens=1,2 delims==" %%A In (%CfgFile%) Do (
	Set /A i+=1
	Set %%A=%%B
	Set CfgKey!i!=%%A
	Set CfgStrings=!i!
)
Exit /B

:WriteCfg
If Exist %CfgFile% (Del %CfgFile%)
For /L %%S In (1,1,%CfgStrings%) Do (
	Call :WriteSingleLine "!CfgKey%%S!"
)
Exit /B
:WriteSingleLine
Echo %~1=!%~1!>>%CfgFile%
Exit /B
:: =============================================================

Последний раз редактировалось Anonymоus, 06-01-2012 в 11:17.


Отправлено: 10:32, 06-01-2012 | #3



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочее - SMTP validation адресов группы рассылки не работает Riiku Microsoft Exchange Server 0 21-03-2011 12:22
Прочее - У 2х компьютеров отсутствует пинг, не видят рабочей группы.. Netman Сетевые технологии 8 23-01-2010 23:58
Интерфейс - [решено] Учётная запись администратора уходит на 2-е место united Microsoft Windows 2000/XP 3 08-01-2008 16:17
Сеть: 3 компа, есть пинг но не видят раб.группы Duka_minimo Сетевые технологии 4 06-03-2007 18:02
Один свитч на две группы IP адресов SergOst Сетевые технологии 3 27-07-2004 17:53




 
Переход