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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   BAT-ник для записи IP адреса в *.ini файл (http://forum.oszone.net/showthread.php?t=292381)

PasHix 10-12-2014 12:42 2442210

BAT-ник для записи IP адреса в *.ini файл
 
Всем доброго времени суток!

Прошу помочь мне с задачей.
Надо, что бы BAT-ник брал IP адрес моего компьютера и запихивал его в *.ini файл в 75 строку после 7-го символа, с заменой старого IP адреса в этом *.ini файле. который лежит на диске D:\


С Уважением!

Iska 10-12-2014 15:41 2442325

Кодировка Вашего ini-файла? Почему ориентируетесь на номер строки и столбца, а не, как положено — на имя раздела и имя параметра?

PasHix 10-12-2014 16:08 2442338

Спасибо! Уже решил.

Для одной сетевой ПРИМЕРНО выглядит так:

Код:


@echo off
@echo Играем с ML файлом

:main
Rem файл конфигурации
set ml=ml.ini
Rem Первая часть от полного файла
set BML1=.\BU\BML1.txt
Rem Вторая часть от полного файла
set BML2=.\BU\BML2.txt
Rem Временный файл с IP
set IPml=.\BU\IPml.txt

:start
@echo Резервирование файла ml.ini
xcopy %ml% .\backup\ /c /q /h /Y /F

@echo IP в переменную
for /f "tokens=1* skip=7 delims=:" %%a in ('ipconfig') do (
set ip=%%b
goto ippc)

:ippc
@echo *
Set "input="
Set /p input="Это Ваш IP %ip%! Продолжить(Y/N)?"
@echo *
if /i "%input%"=="y" goto yes
if /i "%input%"=="n" goto no
exit

:yes
@echo Копируем переменную в строку
echo TCPHost =%ip%>> .\BU\IPml.txt
@echo *
@echo Компиляция файла
copy %BML1% + %IPml% + %BML2% %ml%
goto del
pause
exit

:del
del %IPml%
exit

:no
@echo Операция не выполнена!
pause


PasHix 10-12-2014 17:04 2442364

Для двух сетевых:


Код:


@echo off
@echo Играем с ML файлом и 2-мя IP

:main
Rem файл конфигурации
set ml=ml.ini
Rem Первая часть от полного файла
set BML1=.\BU\BML1.txt
Rem Вторая часть от полного файла
set BML2=.\BU\BML2.txt
Rem Временный файл с IP
set IPml=.\BU\IPml.txt

:start
@echo Резервирование файла
xcopy %ml% .\backup\ /c /q /h /Y /F
goto reip1

:reip1
for /f "tokens=1* skip=7 delims=:" %%a in ('ipconfig') do (
set ip1=%%b
goto reip2)

:reip2
for /f "tokens=1* skip=14 delims=:" %%c in ('ipconfig') do (
set ip2=%%d
goto ippc)

:ippc
@echo *
Set "input="
Set /p input="Ваши IP %ip1% и %ip2%! Выберите 1-й или 2-й (1/2)?"
@echo *
if /i "%input%"=="1" goto ippc1
if /i "%input%"=="2" goto ippc2
exit

:ippc1
@echo *
Set "input="
Set /p input="ВЫ выбрали IP %ip1%! Продолжить(Y/N)?"
@echo *
if /i "%input%"=="y" goto yes1
if /i "%input%"=="n" goto no
exit

:yes1
@echo Копируем переменную в строку
echo TCPHost =%ip1%>> .\BU\IPml.txt
@echo *
@echo Компиляция файла
copy %BML1% + %IPml% + %BML2% %ml%
goto del
exit

:ippc2
@echo *
Set "input="
Set /p input="ВЫ выбрали IP %ip2%! Продолжить(Y/N)?"
@echo *
if /i "%input%"=="y" goto yes2
if /i "%input%"=="n" goto no
exit

:yes2
@echo Копируем переменную в строку
echo TCPHost =%ip2%>> .\BU\IPml.txt
@echo *
@echo Компиляция файла
copy %BML1% + %IPml% + %BML2% %ml%
goto del
exit

:del
del %IPml%
pause
exit

:no
@echo Операция не выполнена!
pause


Iska 10-12-2014 17:14 2442372

Дело осталось за малым: рассказать, что есть «ML файл», и нахрена он всем сдался зачем он может кому-то понадобиться.

PasHix 10-12-2014 17:23 2442375

Ну это у меня он так называется, мало ли кому то понадобится в *.ini (или *.vbs) файл добавить строку с IP, можно и маску и шлюз туда бахнуть.


Время: 03:07.

Время: 03:07.
© OSzone.net 2001-