Originally posted by chenall at 2007-4-25 10:58 PM:
新版已经改过来了,可以设置变量.
楼主可以去试试新版本的,要设置变量之前请将里面的setvar=0修改为1
其实我是想要这种效果,把读ini作为子函数。
主函数从ini取出一些需要的变量用作参数去做其他操作。
还好问题已经解决,非常感谢你的指点,再次感谢。
@echo off
:::::::::INI文件读取 by chenall QQ:366840202::::::::::::::::::::::
::使用方法: ::
:: inifile iniFilePath ::
::例子: ::
:: inifile c:\boot.ini ::
:: 读取c:\boot.ini的所有 ::
:: inifile c:\boot.ini "" ::
:: 读取c:\boot.ini 段的内容 ::
:: inifile c:\boot.ini "" timeout ::
:: 显示c:\boot.ini 段 timeout的值 ::
::07-04-26 新增设置变量的功能,只需将下面的setvar=0改为1即可 ::
::::::::::::::::::::::::::::::::::::::::::::2006-12-21::::::::::::
set setvar=1
::当有指定参娄并且setvar值为1时就将的值设为变量
::例子inifile c:\boot.ini "" timeout 就可以得到一个%timeout%的变量
set item=
set filepath=
set section=
call :inifile c:\boot.ini "" timeout
echo %item%
goto :eof
:inifile
if not "%~1"=="" (
set filepath=%1
) else goto :file_err
if not exist %filepath% goto :file_err
setlocal EnableDelayedExpansion
if not "%~2"=="" (
set section=%~2
if "!section:~0,1!"==""^" set section=!section:~1!
if "!section:~-1!"==""^" set section=!section:~0,-1!
) else goto :section
if not "%~3"=="" (
set item=%~3
if "!item:~0,1!"==""^" set item=!item:~1!
if "!item:~-1!"==""^" set item=!item:~0,-1!
)
endlocal&set "item=%item%"&set "section=%section%"
for /f "usebackq delims= skip=2" %%i in (`find /i "%section%" /n %filepath%`) do set 字段开始=%%i
if "%字段开始%"=="" goto :eof
for /f "eol=; usebackq tokens=1* skip=%字段开始% delims==" %%i in (`type %filepath%`) do (
set a=%%i
setlocal EnableDelayedExpansion
if "!a:~0,1!"=="
endlocal&set "item=%%j"
)
)
)
)
goto :eof
:section
endlocal
for /f "eol=; usebackq delims== skip=2" %%i in (`find /i "