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

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

Ответить
Настройки темы
CMD/BAT - Изменить настройки в *.ini файле через *.bat

Пользователь


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

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


Помогите пожалуйста сделать батник, изменяющий настройки в *.ini файле.
Есть файл file.ini в нем есть такие стороки:

Server_address=XXX.XXX.XXX.XXX
Server_port=XXXX

Как с помощью *.bat файла изменить значения адреса сервера и порта?
P.s текущее значения в ини файле не постоянные. То есть они могут меняться.

Отправлено: 21:54, 29-04-2010

 

Аватара для volk1234

Старовер


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

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


текст батника
Код: Выделить весь код
@Echo Off

CALL :REPLINE "drwu.ini" "Autostart=" "Autostart=1"
CALL :REPLINE "drwu.ini" "Destination=" "Destination=.\DrWebUP"

:REPLINE
 If Not Exist "%~1" Exit /B 1
 If Exist "%~dpn1.tmp" DEL /F/Q "%~dpn1.tmp"

 Set $N=0& For /F "Delims=:" %%i In ('FindStr /BINRC:" *%~2" "%~1"') Do Set $N=%%i
 If %$N% NEQ 0 For /F "Tokens=1* Delims=:" %%i In ('FindStr /ENRC:"$" "%~1"') Do If "%%i"=="%$N%" (
 Echo %~3 >>"%~dpn1.tmp" ) ELSE Echo.%%j>>"%~dpn1.tmp"

 If Exist "%~dpn1.tmp" If Exist "%~1" DEL /F/Q "%~1"
 If Exist "%~dpn1.tmp" REN "%~dpn1.tmp" "%~nx1"
Exit /B 0
текст инишника
Код: Выделить весь код
[DrWU]
Language=Russian
Boot=0
AutoUpdate=1
Autostart =0
ExitAfterUpdate= 
UseMethod=1
UpdateMethod=0
FTPPassive=0
UpdateTXT=1
UpdateInterval=120
EnableAdditionalPath=0
Source=
UseProxy=0
Proxy=
Destination=.\DrWebUP
ЗЫ. Запостил сообщение и заметил ошибку, параметр autostart отделен пробелом от значения- это уже я эксперементировал и пробовал с пробелом и без...
Убрал в ини файле и ваш совет помог- если сделать пробел между %3 и >> то работает

-------

Ю-ху!


Отправлено: 22:52, 14-08-2011 | #21



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

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


Аватара для Anton04

Ветеран


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

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


amel27,

А можно немного усложнить задачу?

Что если часть значения которое нужно заменить необходимо вычислить? Например переменную %PROGRAMFILES% в пути C:\Program Files\Opera\profile\scripts ?

Например должно получится так

CALL :REPLINE "operaprefs.ini" "User JavaScript File=" "User JavaScript File=C:\Program Files\Opera\profile\scripts"

Но для этого нужно вычислить с начало переменную и подставить его в значение...

-------
Слабый всю жизнь идёт лёгкой дорогой, черта сильного выбрать трудный путь.
Будь осторожен в своих желаниях, ибо они иногда сбываются.


Отправлено: 17:51, 15-08-2011 | #22


Старожил


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

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


Anton04, ну и напиши
Код: Выделить весь код
CALL :REPLINE "operaprefs.ini" "User JavaScript File=" "User JavaScript File=%PROGRAMFILES%\Opera\profile\scripts"
%PROGRAMFILES% является переменной среды и уже прописана.
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:40, 16-08-2011 | #23


Аватара для Anton04

Ветеран


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

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


Цитата SendMessage:
%PROGRAMFILES% является переменной среды и уже прописана. »
хм.... действительно, а я то думал что нужно ещё вычислить её... Спасибо за разъяснение.

Так теперь хочется немного универсальности, что бы можно было запускать прямо из командной строки типа:

edit_ini_file.cmd "%PROGRAMFILES%\Opera\profile\scripts\operaprefs.ini" "User JavaScript File=" "User JavaScript File=%PROGRAMFILES%\Opera\profile\scripts"

т.е. прописывать путь к файлу в котором менять и что менять не редактируя сам скрипт.

Кто поможет в реализации?

-------
Слабый всю жизнь идёт лёгкой дорогой, черта сильного выбрать трудный путь.
Будь осторожен в своих желаниях, ибо они иногда сбываются.


Отправлено: 10:07, 16-08-2011 | #24


Старожил


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

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


Цитата Anton04:
Так теперь хочется немного универсальности, что бы можно было запускать прямо из командной строки типа:
edit_ini_file.cmd "%PROGRAMFILES%\Opera\profile\scripts\operaprefs.ini" "User JavaScript File=" "User JavaScript File=%PROGRAMFILES%\Opera\profile\scripts"
т.е. прописывать путь к файлу в котором менять и что менять не редактируя сам скрипт. »
Заменить строку
Код: Выделить весь код
CALL :REPLINE "operaprefs.ini" "User JavaScript File=" "User JavaScript File=%PROGRAMFILES%\Opera\profile\scripts"
на
Код: Выделить весь код
CALL :REPLINE %1 %2 %3
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:40, 16-08-2011 | #25


Аватара для Anton04

Ветеран


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

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


SendMessage,

Странно, но не работает... пишет if not exist...

-------
Слабый всю жизнь идёт лёгкой дорогой, черта сильного выбрать трудный путь.
Будь осторожен в своих желаниях, ибо они иногда сбываются.


Последний раз редактировалось Anton04, 16-08-2011 в 14:23.


Отправлено: 14:17, 16-08-2011 | #26


Старожил


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

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


Anton04, не могу воспроизвести Вашу ошибку. Создал в папке Internet Explorer ини-файл и прописал в комстроке:
Код: Выделить весь код
z:\iniwrite.bat "%PROGRAMFILES%\Internet Explorer\file.ini" "User JavaScript File=" "User JavaScript File=%PROGRAMFILES%\Opera\profile\scripts"
Все отрабатывает нормально.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:40, 16-08-2011 | #27


Аватара для Anton04

Ветеран


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

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


SendMessage,

Видать где-то ошибся в написании %PROGRAMFILES%, переписал заново и всё пошло. Ещё раз спасибо.

-------
Слабый всю жизнь идёт лёгкой дорогой, черта сильного выбрать трудный путь.
Будь осторожен в своих желаниях, ибо они иногда сбываются.


Отправлено: 16:01, 16-08-2011 | #28


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


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

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


Цитата amel27:
коль пошла такая пьянка, до кучи еще вариант:
Код:
@Echo Off
CALL :REPLINE "file.ini" "Server_address=" "Server_address=192.1.1.1"
CALL :REPLINE "file.ini" "Server_port=" "Server_port=8080"
:REPLINE
If Not Exist "%~1" Exit /B 1
If Exist "%~dpn1.tmp" DEL /F/Q "%~dpn1.tmp"
Set $N=0& For /F "Delims=:" %%i In ('FindStr /BINRC:" *%~2" "%~1"') Do Set $N=%%i
If %$N% NEQ 0 For /F "Tokens=1* Delims=:" %%i In ('FindStr /ENRC:"$" "%~1"') Do If "%%i"=="%$N%" (
Echo %~3>>"%~dpn1.tmp" ) ELSE Echo.%%j>>"%~dpn1.tmp"
If Exist "%~dpn1.tmp" If Exist "%~1" DEL /F/Q "%~1"
If Exist "%~dpn1.tmp" REN "%~dpn1.tmp" "%~nx1"
Exit /B 0
------- »
Отличный батник, все работает, хочу прикрутить его под свою задачку.
Задача заменить в инишнике ряд параметров, например найти в тексте слово ACTION и заменить на слово Действие. Текущий батник заменяет параметр но удаляет в строчке все что находиться после подмененного значения. Подскажите что нужно изменить в батнике?

Отправлено: 09:29, 15-05-2012 | #29


Ветеран


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

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


Подскажите, как в BCDW.ini
читать дальше »
часть ini:
Код: Выделить весь код
[MenuItems]
:; *** Описания вариантов загрузки
C:\ ; Загрузка с жесткого диска ; ^ Продолжение загрузки с жесткого диска
\i386\setuplda.bin ; Автоматическая установка Windows XP 2012 ; Автоматическая установка Windows XP SP3 2012 Pro ^ с обновлениями по 15 марта 2012 года, драйверами и программами
\i386\setupldr.bin ; Ручная установка Windows XP 2012 ( с консолью восстановления ) ; Ручная установка Windows XP SP3 2012 Pro с обновлениями по 15 марта 2012 года ^ Во время установки введите свой лицензионный ключ
....

заменить значение 15 марта 2012 года переменной ( к примеру %date%) Скрипт amel27 в посте 13 не смог приспособить.

Отправлено: 12:29, 15-05-2012 | #30



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Система - Что у Вас в файле Finish.ini для GUI интегратора? wolkow70 Наборы обновлений для Windows XP/2003/Windows 7 13 15-01-2011 02:07
[решено] Скрипт для удаления нужных слов в ini файле Pozia AutoIt 23 27-10-2009 18:42
Любой язык - Проверка сетевых ресурсов в BAT-файле chkur Скриптовые языки администрирования Windows 1 03-12-2008 12:39
Решено | Можно ли задать параметры в файле boot.ini пред инсталляцией? botvin Автоматическая установка Windows 2000/XP/2003 2 15-04-2006 02:46




 
Переход