Делаем конфиг для 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
|
Использована унифицированная для моих скриптов функция чтения\записи 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 ===============================
|
Спасибо канечно огромное) всё сделано на высшем уровне но не совсем то.
Думал вы сделаете а я под себя поправлю ) Так глянул и понял что не поправлю...
В общем как говорится
Код:
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
|
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.
|
Anonymоus,
Всё, ещё раз спасибо огромное, этот вариант вполне подходит..
и в дальнейшем думаю пригодится 100%
|
Время: 01:50.
© OSzone.net 2001-