批处理读取ini配置文件
2012-05-18 03:36
786 查看
批处理功能很强的,下面我写了一个可以读取ini配置文件的脚本
--------------------------------readini.bat---------------------------------------------
rem @echo off & setlocal enabledelayedexpansion
rem echo 参数个数: %0 %1 %2 %3
set name=
set namelist=
set param=
set paramlist=
FOR /F "eol=; tokens=1* usebackq delims==" %%i IN (%1) do (
rem echo %%i %%j
set p=%%i
rem echo p=!p!
rem echo 取字符!p! !p:~0,1! !p:~-1! !p:~1,-1!
if "!p:~0,1!"=="[" (
if "!p:~-1!"=="]" (
rem @echo 条件!p:~1,-1!
set name=!p:~1,-1!
)
)
rem echo name=!name! namelist=!namelist! paramlist=!paramlist! 输入 %2
if ""=="%2" (
rem echo namelist=!namelist! %%i
if !namelist! EQU "" (
if "!p:~1,-1!" NEQ "" (
rem echo 步骤1 !namelist!
set namelist=!p:~1,-1!
)
) else (
if "!p:~1,-1!" NEQ "" (
rem echo 步骤2 uuuu!namelist!uuuu
set namelist=!namelist!,!p:~1,-1!
)
)
) else if "!name!"=="%2" (
if "%3"=="" (
if "[!name!]" NEQ "%%i" (
if "!paramlist!"=="" (
set paramlist=%%i
) else (
set paramlist=!paramlist!,%%i
rem echo 得到属性 %%i %%j
)
)
) else (
if "%%i" == "%3" (
set param=%%j
)
)
)
)
rem echo ------------------------
rem echo name=!name!
if "%2" EQU "" (
rem 名称列表
echo "!namelist:~1!"
) else (
if "%3" EQU "" (
rem 属性列表
echo "!paramlist!"
) else (
rem 属性值
echo "!param!"
)
)
rem @echo on
----------------------------------------------------------------------------------------
-------------------------------1.ini---------------------------------------------
;测试用ini文件
;注意 名称中不能有等号和空格
; 属性和等号之间不能有空格
[abc]
cd=oop
me= kke =d f
[bbb]
cd=wsd
me=
----------------------------------------------------------------------------------
---------------------调用方法test.bat----------------------------------------
@echo off & setlocal enabledelayedexpansion
echo ----readini 1.ini----
call readini 1.ini
echo ----readini 1.ini abc----
call readini 1.ini abc
echo ----readini 1.ini abc me----
call readini 1.ini abc me
@echo on
pause
-----------------------------------------------------------------------------------
运行效果
--------------------------------readini.bat---------------------------------------------
rem @echo off & setlocal enabledelayedexpansion
rem echo 参数个数: %0 %1 %2 %3
set name=
set namelist=
set param=
set paramlist=
FOR /F "eol=; tokens=1* usebackq delims==" %%i IN (%1) do (
rem echo %%i %%j
set p=%%i
rem echo p=!p!
rem echo 取字符!p! !p:~0,1! !p:~-1! !p:~1,-1!
if "!p:~0,1!"=="[" (
if "!p:~-1!"=="]" (
rem @echo 条件!p:~1,-1!
set name=!p:~1,-1!
)
)
rem echo name=!name! namelist=!namelist! paramlist=!paramlist! 输入 %2
if ""=="%2" (
rem echo namelist=!namelist! %%i
if !namelist! EQU "" (
if "!p:~1,-1!" NEQ "" (
rem echo 步骤1 !namelist!
set namelist=!p:~1,-1!
)
) else (
if "!p:~1,-1!" NEQ "" (
rem echo 步骤2 uuuu!namelist!uuuu
set namelist=!namelist!,!p:~1,-1!
)
)
) else if "!name!"=="%2" (
if "%3"=="" (
if "[!name!]" NEQ "%%i" (
if "!paramlist!"=="" (
set paramlist=%%i
) else (
set paramlist=!paramlist!,%%i
rem echo 得到属性 %%i %%j
)
)
) else (
if "%%i" == "%3" (
set param=%%j
)
)
)
)
rem echo ------------------------
rem echo name=!name!
if "%2" EQU "" (
rem 名称列表
echo "!namelist:~1!"
) else (
if "%3" EQU "" (
rem 属性列表
echo "!paramlist!"
) else (
rem 属性值
echo "!param!"
)
)
rem @echo on
----------------------------------------------------------------------------------------
-------------------------------1.ini---------------------------------------------
;测试用ini文件
;注意 名称中不能有等号和空格
; 属性和等号之间不能有空格
[abc]
cd=oop
me= kke =d f
[bbb]
cd=wsd
me=
----------------------------------------------------------------------------------
---------------------调用方法test.bat----------------------------------------
@echo off & setlocal enabledelayedexpansion
echo ----readini 1.ini----
call readini 1.ini
echo ----readini 1.ini abc----
call readini 1.ini abc
echo ----readini 1.ini abc me----
call readini 1.ini abc me
@echo on
pause
-----------------------------------------------------------------------------------
运行效果
相关文章推荐
- 读取ini配置文件
- 用vb.net读取INI配置文件的方法,使用API
- 一个读取INI配置文件的类
- 利用GetPrivateProfileString读取配置文件(.ini)
- java读取和修改ini配置文件
- c# 如何读取和写入ini(配置文件)
- 通过python读取ini配置文件
- 利用GetPrivateProfileString读取配置文件(.ini)
- 利用GetPrivateProfileString读取配置文件(.ini)
- Python读取修改ini配置文件[ConfigParser]
- ini 配置文件的格式 及读取
- C# 简易读取INI配置文件
- 一个简单的利用ini配置文件以及用户输入的交互进行文件夹内容拷贝的批处理文件脚本的实现
- java软件托盘MenuItem 显示中文出现框框乱码、读取ini配置文件乱码
- 利用GetPrivateProfileString读取配置文件(.ini)
- VB读取INI配置文件各方资料整合
- 使用java读取配置文件(ini、properties)
- C# 读取ini配置文件
- MFC读取和写入INI配置文件当前目录
- ZendFramework学习第三章(核心组件—使用配置数据之从ini配置文件中读取数据)