批处理读取ini配置文件

批处理功能很强的,下面我写了一个可以读取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

-----------------------------------------------------------------------------------
运行效果



  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值