admin 管理员组文章数量: 887021
2024年2月21日发(作者:createtempfile是什么意思)
bat读写ini文件的函数
BAT脚本可以通过读写INI文件来记录和获取配置信息。INI文件是一种常见的配置文件格式,在Windows系统中被广泛应用。
读取INI文件的函数:
```
setlocal EnableDelayedExpansion
set 'INI_FILE='
set 'SECTION=[Section1]'
set 'KEY=Key1'
for /F 'usebackq delims=' %%a in ('%INI_FILE%') do (
set 'LINE=%%a'
REM 去掉行首尾的空格和制表符
set 'LINE=!LINE: =!'
set 'LINE=!LINE: =!'
set 'LINE=!LINE: =!'
REM 如果是[section]行,则判断是否是要读取的section
if '!LINE:~0,1!'=='[' (
set 'CUR_SECTION=!LINE!'
set 'CUR_SECTION=!CUR_SECTION:[=!'
set 'CUR_SECTION=!CUR_SECTION:]=!'
if '!CUR_SECTION!'=='!SECTION!' (
set 'IN_SECTION=true'
- 1 -
) else (
set 'IN_SECTION=false'
)
) else (
REM 不是[section]行,如果在要读取的section内,则判断是否是要读取的key
if '!IN_SECTION!'=='true' (
for /F 'tokens=1,* delims==' %%b in ('!LINE!') do (
set 'CUR_KEY=%%b'
set 'CUR_VALUE=%%c'
REM 去掉key和value的空格
set 'CUR_KEY=!CUR_KEY: =!'
set 'CUR_VALUE=!CUR_VALUE: =!'
if '!CUR_KEY!'=='!KEY!' (
echo !CUR_VALUE!
)
)
)
)
)
```
该函数将INI文件中`[Section1]`内`Key1`的值打印出来。
- 2 -
写入INI文件的函数:
```
setlocal EnableDelayedExpansion
set 'INI_FILE='
set 'SECTION=[Section1]'
set 'KEY=Key1'
set 'VALUE=Value1'
set 'TMP_FILE=%TEMP%%RANDOM%.tmp'
REM 复制INI文件到临时文件
copy '%INI_FILE%' '%TMP_FILE%' >nul
REM 替换文件中的键值
set 'REPLACED=false'
for /F 'usebackq delims=' %%a in ('%TMP_FILE%') do (
set 'LINE=%%a'
set 'CUR_SECTION=!LINE!'
set 'CUR_SECTION=!CUR_SECTION:[=!'
set 'CUR_SECTION=!CUR_SECTION:]=!'
if '!LINE:~0,1!'=='[' (
if '!CUR_SECTION!'=='!SECTION!' (
set 'IN_SECTION=true'
) else (
set 'IN_SECTION=false'
- 3 -
)
) else (
if '!IN_SECTION!'=='true' (
for /F 'tokens=1,* delims==' %%b in ('!LINE!') do (
set 'CUR_KEY=%%b'
set 'CUR_VALUE=%%c'
set 'CUR_KEY=!CUR_KEY: =!'
if '!CUR_KEY!'=='!KEY!' (
echo !KEY!=!VALUE!>>'%TMP_FILE%'
set 'REPLACED=true'
)
)
)
)
)
REM 如果没有替换成功,则在[section]下面插入新的key-value
if '!REPLACED!'=='false' (
echo.>>'%TMP_FILE%'
echo !SECTION!>>'%TMP_FILE%'
echo !KEY!=!VALUE!>>'%TMP_FILE%'
)
REM 将临时文件复制回INI文件
- 4 -
copy /y '%TMP_FILE%' '%INI_FILE%' >nul
del '%TMP_FILE%'
```
该函数将INI文件中`[Section1]`内的`Key1`的值替换为`Value1`,如果没有该键则在`[Section1]`下面插入新的键值对。
- 5 -
版权声明:本文标题:bat读写ini文件的函数 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1708470928h525299.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论