批处理命令如何读取包含多个section的ini文件?
ini文件内容类似如此:*************************[soft01]version=V1.0.001[soft02]version=V1.0.010...
ini文件内容类似如此:
*************************
[soft01]
version=V1.0.001
[soft02]
version=V1.0.010
[soft03]
version=V1.0.003
……
**************************
我需要同时读取多个SECTION下(不一定是全部SECTION)的version值并echo在屏幕上。
看了不少网上的问答,但一般的都是只有一个SECTION,并且还看不太懂。
PS.必须用批处理命令,不要VBS等等…… 展开
*************************
[soft01]
version=V1.0.001
[soft02]
version=V1.0.010
[soft03]
version=V1.0.003
……
**************************
我需要同时读取多个SECTION下(不一定是全部SECTION)的version值并echo在屏幕上。
看了不少网上的问答,但一般的都是只有一个SECTION,并且还看不太懂。
PS.必须用批处理命令,不要VBS等等…… 展开
3个回答
展开全部
全部
@echo off
for /f "tokens=2 delims==" %%i in (a.ini) do echo %%i
不一定全部,如果只要version值不要section把倒数第三行中间的echo !s! %%j改成 echo %%j
@echo off
setlocal enabledelayedexpansion
set v=soft01 soft03
for %%a in (%v%) do (
for /f "tokens=1* delims=[]=" %%i in (a.ini) do (
if defined s echo !s! %%j&set s=
if "%%i"=="%%a" set s=%%i))
pause
@echo off
for /f "tokens=2 delims==" %%i in (a.ini) do echo %%i
不一定全部,如果只要version值不要section把倒数第三行中间的echo !s! %%j改成 echo %%j
@echo off
setlocal enabledelayedexpansion
set v=soft01 soft03
for %%a in (%v%) do (
for /f "tokens=1* delims=[]=" %%i in (a.ini) do (
if defined s echo !s! %%j&set s=
if "%%i"=="%%a" set s=%%i))
pause
追问
已经能够实现我的目的,还想再请教下:
已知section可能会是soft01、soft02、……、soft20(亦即范围是已知的)
但是在这个ini文件中不一定会全部存在,只要某个section存在就显示出version值,是不是第三行应该改为(ini文件中同时还会存在其它无用的section,那些不用显示):
set v=soft01 soft02 soft03 …… soft20
另外,有没有办法在结果中把“soft01 V1.0.001”改为“软件01 V1.0.001”?
展开全部
inifile.com (网上可以搜索下载)专门处理 ini 文件,可以满足你的要求:
INIFILE.COM /?
INIFILE 1.2 (c) 2003, Horst Schaeffer
Add/Change/Remove/Read entries in INI files
Syntax:
Add or Change:
INIFILE ini_file_name [section] item=ini_string
Remove:
INIFILE ini_file_name [section] item=
INIFILE ini_file_name [section] /remove
Read:
INIFILE ini_file_name [section] item
(generates a SET statement to STDOUT)
INIFILE ini_file_name [section]
(generates SET statements for all items in section)
For INI files without sections: specify an empty section
INIFILE.COM /?
INIFILE 1.2 (c) 2003, Horst Schaeffer
Add/Change/Remove/Read entries in INI files
Syntax:
Add or Change:
INIFILE ini_file_name [section] item=ini_string
Remove:
INIFILE ini_file_name [section] item=
INIFILE ini_file_name [section] /remove
Read:
INIFILE ini_file_name [section] item
(generates a SET statement to STDOUT)
INIFILE ini_file_name [section]
(generates SET statements for all items in section)
For INI files without sections: specify an empty section
追问
能再详细解释下么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
find "section.ini" "version"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询