Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Делаем конфиг для bat (http://forum.oszone.net/showthread.php?t=227289)

root221 07-02-2012 19:41 1853762

Делаем конфиг для bat
 
Здравствуйте,

Хотелось бы что бы вы мне сделали батник с конфигом.

Пример.

*.bat

Код:

@echo off

:start

ping (Тут IP1) -n 1 -w 111
ping (Тут IP2) -n 1 -w 111
ping (Тут IP3) -n 1 -w 111

:: Повтор
goto start

config.ini

Код:

:: Первый адрес
pingip1=127.0.0.1
:: Второй адрес
pingip2=127.0.0.2
:: Третий адрес
pingip3=127.0.0.3


Anonymоus 08-02-2012 01:18 1853924

Использована унифицированная для моих скриптов функция чтения\записи ini
Код:

@Echo Off
SetLocal EnableDelayedExpansion
Set CfgFile=config.ini
Call :ReadKeyValue
:Start
For /L %%A In (1,1,3) Do (Ping -n 1 -w 111 !pingip%%A!)
GoTo Start




rem ====== Функции для работы с ini
:ReadKeyValue
If Not Exist %CfgFile% (Exit 1)
Set i=0
For /F "tokens=1,2 delims== usebackq" %%A In ("%CfgFile%") Do (
        Set /A i+=1
        Set %%A=%%B
        Set CfgKey!i!=%%A
        Set CfgStrings=!i!
)
Exit /B

:WriteKeyValue
If Exist "%CfgFile%" (Del "%CfgFile%")
For /L %%S In (1,1,%CfgStrings%) Do (
        Call :SingleLine "!CfgKey%%S!"
)
Exit /B
:SingleLine
If Not "!%~1!"=="" (Echo %~1=!%~1!>>"%CfgFile%") Else (Echo %~1>>"%CfgFile%")
Exit /B
rem ===============================


root221 08-02-2012 01:50 1853932

Спасибо канечно огромное) всё сделано на высшем уровне но не совсем то.

Думал вы сделаете а я под себя поправлю ) Так глянул и понял что не поправлю...

В общем как говорится

Код:

set ARP=ON
set 0LOG=file.log
set 0LocalName=LocalNet
set 2InetAddr=94.100.191.201
set 2TEstInetCol=3
set 2TEstInetMls=1
set 1SetAddrPing=127.0.0
set 1NumSAddPing=254
set 1ColPing=1
set 1MlsPing=100


всё что выделенно жирным шрифтом хочу что бы было вынесено в конфиг.

в таком виде

Код:

ARP=ON
0LOG=file.log
0LocalName=LocalNet
2InetAddr=94.100.191.201
2TEstInetCol=3
2TEstInetMls=1
1SetAddrPing=127.0.0
1NumSAddPing=254
1ColPing=1
1MlsPing=100

имя конфига прежнее config.ini

Anonymоus 08-02-2012 02:02 1853937

root221, в ваш батник вставляете куда-нибудь в низ вот это
Код:

:ReadKeyValue
If Not Exist %CfgFile% (Exit 1)
Set i=0
For /F "tokens=1,2 delims== usebackq" %%A In ("%CfgFile%") Do (
        Set /A i+=1
        Set %%A=%%B
        Set CfgKey!i!=%%A
        Set CfgStrings=!i!
)
Exit /B

И в начало батника вот это:
Код:

SetLocal EnableDelayedExpansion
Set CfgFile=config.ini
Call :ReadKeyValue

Всё, все значения прочитает из ini-файла при старте. Т.е., если в ini-файле есть строчка 1NumSAddPing=254, то у вас в скрипте будет создана переменная 1NumSAddPing со значением 254.

root221 08-02-2012 02:13 1853943

Anonymоus,

Всё, ещё раз спасибо огромное, этот вариант вполне подходит..

и в дальнейшем думаю пригодится 100%


Время: 01:50.

Время: 01:50.
© OSzone.net 2001-