healer
Администратор
Из: Москва
Сообщения: 24467
|
|
bat / cmd Чтение файла настроек (ini) |
|
Послано: 10-07-2015 15:11 |
|
|
@echo off
rem Читаем настройки из файла. Если не удалось распарсить настройки -
rem выходим с ненулевым кодом возврата.
rem Имя файла должно передаваться первым параметром.
rem Если файл настроек (ini) расположен в том же каталоге, что и скрипт,
rem то достаточно передать имя файла. Или указать это явно %~dp0config365p.ini,
rem где %~dp0 и определяет каталог, из которого запущен скрипт.
rem Иначе следует указывать полный путь и имя файла, например e:\crone\config.ini
call :read_settings %~dp0config365p.ini || exit /b 1
rem Прочитанные настройки:
echo TMP_=%TMP%
echo tstfsm=%test66%
pause
rem Выход из сценария. Дальше - только функции.
exit
rem
rem Функция для чтения настроек из файла.
rem Вход:
rem %1 - Имя файла с настройками
:read_settings
set SETTINGSFILE=%1
rem Проверка существования файла
if not exist %SETTINGSFILE% (
echo FAIL: Файл с настройками отсутствует
exit /b 1
)
rem Обработка файла c настройками
rem Здесь:
rem eol=# указывает на то, что содержимое строки начиная с символа #
rem и до ее конца может быть пропущено как комментарий.
rem
rem delims== указывает, что разделителем значений является символ =
rem
rem tokens=1,2 приводит к тому, что в переменную %%i будет занесен первый
rem токен, а в %%j - второй.
rem
for /f "eol=# delims== tokens=1,2" %%i in (%SETTINGSFILE%) do (
rem В переменной i - ключ
rem В переменной j - значение
rem Мы транслируем это в переменные окружения
set %%i=%%j
)
exit /b 0
~~~~~~~~~~~~
Здоровья Вам. Духовного и физического.
|
healer
Администратор
Из: Москва
Сообщения: 24467
|
|
bat / cmd Чтение файла настроек (ini) |
|
Послано: 10-07-2015 15:14 |
|
|
Сам файл настроек (в данном случае - config365p.ini) может выглядеть так:
# Файл настроек
#
# Директория для временных файлов
TMP=N:\OTCHET\365p\tmp
# Директория для расшифровки файлов
VRB=N:\OTCHET365p\vrb
# Файл проверки установки ключа mgtu
testka=F:\DB1\250601.fsg
# Файл проверки установки ключа фсфм
test66=F:\HD1\5197.PUB
Строки, ничинающиеся с символа # считаются комментариями.
Остальные строки имеют вид:
переменная = значение
Т. е. вид обычного файла ini.
~~~~~~~~~~~~
Здоровья Вам. Духовного и физического.
|
healer
Администратор
Из: Москва
Сообщения: 24467
|
|
bat / cmd Чтение файла настроек (ini) |
|
Послано: 06-08-2015 09:05 |
|
|
Собственно чтение и разбор ini файла осуществляет функция read_settings.
Описание ее работы приведено в комментариях.
Вопросы, пожелания, комментарии, дополнения и т.п. оставляйте здесь
~~~~~~~~~~~~
Здоровья Вам. Духовного и физического.
|