如何用CMD读写INI文件

yin2099 2012-01-28 01:55:06
我有一个INI文件:config.ini
[Common]
ITEM1=ITEM_1
ITEM2=ITEM_2
ITEM3=ITEM_3

1.我想读[Common]ITEM2的值,
2.重写[Common]ITEM2的值为"test2"
要怎么写这个bat文件呀
...全文
1082 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
s11ss 2012-01-29
  • 打赏
  • 举报
回复
掉了一句,再发一次:
[code=BatchFile]@echo off & setlocal enabledelayedexpansion
set "f="
set "i="
for /f "delims=" %%a in (config.ini) do (
set v=%%a
if "!v:~0,1!"=="[" (
if %%a==[Common] (set f=1) else (set "f=")
) else (
if defined f (
for %%b in (%%a) do (
if %%b==ITEM2 (set f=2) else (if !f!==2 set i=%%b&&goto readover)
)
)
)
)

:readover
if defined i (echo ITEM2=%i%)

set "f="
(for /f "delims=" %%a in (config.ini) do (
set v=%%a
if "!v:~0,1!"=="[" (
if %%a==[Common] (set f=1) else (set "f=")
echo.%%a
) else (
if defined f (
if defined i (
if "%%a"=="ITEM2=%i%" (echo ITEM2=test2) else echo.%%a
) else (
set "f="
echo.%%a
echo ITEM2=test2
)
) else echo.%%a
)
))>config.ini2

move config.ini2 config.ini
pause[/code]
s11ss 2012-01-29
  • 打赏
  • 举报
回复
注意:在写ini时,会清除空行和注释行。
[code=BatchFile]@echo off & setlocal enabledelayedexpansion
set "f="
set "i="
for /f "delims=" %%a in (config.ini) do (
set v=%%a
if "!v:~0,1!"=="[" (
if %%a==[Common] (set f=1) else (set "f=")
) else (
if defined f (
for %%b in (%%a) do (
if %%b==ITEM2 (set f=2) else (if !f!==2 set i=%%b&&goto readover)
)
)
)
)

:readover
if defined i (echo ITEM2=%i%)

set "f="
(for /f "delims=" %%a in (config.ini) do (
set v=%%a
if "!v:~0,1!"=="[" (
if %%a==[Common] (set f=1) else (set "f=")
echo.%%a
) else (
if defined f (
if defined i (
if "%%a"=="ITEM2=%i%" (echo ITEM2=test2) else echo.%%a
) else (
set "f="
echo ITEM2=test2
)
) else echo.%%a
)
))>config.ini2

move config.ini2 config.ini
pause[/code]
yin2099 2012-01-29
  • 打赏
  • 举报
回复
虽然看不懂,但是很管用,谢谢!!!!!!!!!
Mirs 2012-01-28
  • 打赏
  • 举报
回复
VB很多这样的列子

18,141

社区成员

发帖
与我相关
我的任务
社区描述
Windows客户端使用相关问题交流社区
社区管理员
  • Windows客户端使用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧