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

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

Ответить
Настройки темы
CMD/BAT - [решено] Работа с ini-файлами из CMD (BAT)

Аватара для Jeeb

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


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


Конфигурация

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


Доброе всем время суток!

Возникла необходимость редактировать ini-файл из bat-файла.
Кто-нибудь знает команды или утилиты для реализации сего?

P.S. Поиски по Google и Forum.OsZone не дали результатов...

Заранее благодарен.

Отправлено: 19:54, 06-07-2009

 

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


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

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


NirCmd
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:30, 06-07-2009 | #2



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

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


Ветеран


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

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


Diamond, тогда уж NirCmd: Freeware Command-Line Tool.
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:48, 06-07-2009 | #3


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


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

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


Добрый день!
Ни кто не видел программу, которая может читать данные из ini-файлов?

-------
Image Optimizer - сборник программ для оптимизации картинок без потери качества.


Отправлено: 15:15, 20-02-2011 | #4


Ветеран


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

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


lorents, в принципе, можно попробовать обойтись и без сторонних утилит: ReadINI.bat. Однако, всегда существует ненулевая вероятность наткнуться на некорректную работу с разнообразными спецсимволами. Скажем, по приведённой выше ссылке:
Цитата:
May fail on "special" characters like & | < > and parentheses.
Есть и другие реализации, но всё, так или иначе, упирается именно в пресловутые спецсимволы. Предусмотреть и обойти все возможные случаи практически невозможно.

Потому, я бы предложил для этого использовать какую-либо внешнюю утилиту, например: ini Tool (iniTool.exe) от Optimum X.

Последний раз редактировалось Iska, 20-02-2011 в 16:44.

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:38, 20-02-2011 | #5


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


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

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


Iska, Спасибо!
К сожаление, он не понимает комментарии, есть возможность это исправить?
Я еще нашел , это же проблема IniFile

-------
Image Optimizer - сборник программ для оптимизации картинок без потери качества.


Отправлено: 17:35, 20-02-2011 | #6


Ветеран


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

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


Цитата lorents:
К сожаление, он не понимает комментарии, »
Что именно? ReadINI.bat или ini Tool (iniTool.exe)? Мне кажется, Вы что-то путаете…
читать дальше »
Я делаю копию с «C:\WINDOWS\win.ini» как «C:\WINDOWS\win2.ini» и работаю с последним.

Содержимое C:\WINDOWS\win2.ini:
Код: Выделить весь код
; for 16-bit app support
[fonts]
[extensions]
[mci extensions]
[files]
[Mail]
MAPI=1
CMCDLLNAME32=mapi32.dll
CMCDLLNAME=mapi.dll
…
Например, читаю содержимое параметра «CMCDLLNAME32» секции «Mail».

iniTool.exe:
Код: Выделить весь код
"E:\Песочница\0034\iniTool.exe" /f:"C:\WINDOWS\win2.ini" /s:"Mail" /k:"CMCDLLNAME32"
Цитата:
Код: Выделить весь код
mapi32.dll
ReadINI.bat:
Код: Выделить весь код
"E:\Песочница\0034\ReadINI.bat" "C:\WINDOWS\win2.ini" "Mail" "CMCDLLNAME32"
Цитата:
Код: Выделить весь код
"C:\WINDOWS\win2.ini"
[Mail]
CMCDLLNAME32=mapi32.dll
Теперь комментирую параметр «CMCDLLNAME32» секции «Mail» — содержимое C:\WINDOWS\win2.ini будет выглядеть как:
Код: Выделить весь код
; for 16-bit app support
[fonts]
[extensions]
[mci extensions]
[files]
[Mail]
MAPI=1
;CMCDLLNAME32=mapi32.dll
CMCDLLNAME=mapi.dll
…
Затем снова пробую прочитать содержимое параметра «CMCDLLNAME32» секции «Mail».

iniTool.exe:
Код: Выделить весь код
"E:\Песочница\0034\iniTool.exe" /f:"C:\WINDOWS\win2.ini" /s:"Mail" /k:"CMCDLLNAME32"
Цитата:
Код: Выделить весь код
The data requested was not found.
ReadINI.bat:
Код: Выделить весь код
"E:\Песочница\0034\ReadINI.bat" "C:\WINDOWS\win2.ini" "Mail" "CMCDLLNAME32"
Цитата:
Код: Выделить весь код
INI key not found

Что у Вас из этого не работает?

Приведённый Вами IniFile тоже корректно работает (вывод у него, конечно, своеобразный ).
читать дальше »

Читаю содержимое параметра «CMCDLLNAME32» секции «Mail».

inifile.exe:
Код: Выделить весь код
"E:\Песочница\0034\inifile.exe" "C:\WINDOWS\win2.ini" [Mail] "CMCDLLNAME32"
Цитата:
Код: Выделить весь код
set CMCDLLNAME32=mapi32.dll
Опять комментирую параметр «CMCDLLNAME32» секции «Mail» и пробую прочитать содержимое параметра.

inifile.exe:
Код: Выделить весь код
"E:\Песочница\0034\inifile.exe" "C:\WINDOWS\win2.ini" [Mail] "CMCDLLNAME32"
Цитата:
Код: Выделить весь код
set CMCDLLNAME32=
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:15, 20-02-2011 | #7


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


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

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


Iska, прощу прощения что не указал какой комментарий, меня интересует комментарий к отдельному параметру
Код: Выделить весь код
[Section1]
var1 = значение_1 ; комментарий к отдельному параметру
var2 = значение_2
Меня интересует именно приложение.

-------
Image Optimizer - сборник программ для оптимизации картинок без потери качества.


Отправлено: 18:35, 20-02-2011 | #8


Ветеран


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

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


lorents, очевидно так работает GetPrivateProfileString Function (Windows). Она не понимает подобного рода комментарии. Во всяком случае, в моих экспериментах.

Вам придётся дополнительно фильтровать вывод, например:
читать дальше »
Содержимое C:\WINDOWS\win2.ini:
Код: Выделить весь код
; for 16-bit app support
[fonts]
[extensions]
[mci extensions]
[files]
[Mail]
MAPI=1
CMCDLLNAME32=mapi32.dll; some comment
CMCDLLNAME=mapi.dll
…
Читаем содержимое параметра «CMCDLLNAME32» секции «Mail» с помощью «iniTool.exe»:
Код: Выделить весь код
@echo off
setlocal

for /f "delims=;" %%i in ('""E:\Песочница\0034\iniTool.exe" /f:"C:\WINDOWS\win2.ini" /s:"Mail" /k:"CMCDLLNAME32""') do set sCMCDLLNAME32=%%i

if defined sCMCDLLNAME32 echo %sCMCDLLNAME32%

endlocal
exit /b 0
Цитата:
Код: Выделить весь код
mapi32.dll

Последний раз редактировалось Iska, 20-02-2011 в 22:53. Причина: Удалён дубликат из слепленного двойного сообщения

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:01, 20-02-2011 | #9


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


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

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


Iska, понятно, спасибо за все

-------
Image Optimizer - сборник программ для оптимизации картинок без потери качества.


Отправлено: 21:46, 20-02-2011 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] перезагрузка из .bat или .cmd San_dr Программирование и базы данных 7 03-08-2011 01:58
CMD/BAT - [решено] разница между bat и cmd alexandri Скриптовые языки администрирования Windows 2 11-01-2010 22:29
CMD/BAT - [решено] Работа с 7z.exe в bat\cmd файле Medic84 Скриптовые языки администрирования Windows 5 13-10-2009 15:35
C/C++ - [решено] Работа с INI файлами (узнать количество секций) crashtuak Программирование и базы данных 6 25-03-2009 20:10
[решено] Работа с удалёнными файлами rus-4-ever Вебмастеру 2 11-07-2008 15:36




 
Переход