这个问题是有关处理ini文件的,搜索了以前的帖子,觉得我这个问题不需要那么复杂。这个问题是:
现有test.ini文件内容如下:
下面的这个P是为了显示除块以外的内容:
很显然,结果出乎意外。结果只显示到,如下
但错误在哪我死活想不出来。去掉@echo off后分析,在test.ini中运行到以前都是正确的,在这行,!t!的值变成了"1",也是对的。然后一直运行到这行,!t!变成了"0",并且这句也显示了出来。但下面的就都显示不出来了!看!t!的值也都是"0"啊!为什么此时
这句就不执行了呢?
期待高手帮我分析一下!
[ Last edited by fantasybb on 2009-4-16 at 12:05 ]
现有test.ini文件内容如下:
a=1
b=2
c=3
d=4
e=5下面的这个P是为了显示除块以外的内容:
@echo off
setlocal enabledelayedexpansion
set t="0"
for /f "delims=" %%i in (test.ini) do (
if /i "%%i"=="" set t="1"
rem 测试可在此echo !t!
if /i !t!=="0" echo %%i
if /i !t!=="1" (
set tempi=%%i
if "!tempi!"=="" set t="0" &echo %%i
)
rem 测试可在此echo !t!
)
pause 很显然,结果出乎意外。结果只显示到,如下
a=1
b=2
但错误在哪我死活想不出来。去掉@echo off后分析,在test.ini中运行到以前都是正确的,在这行,!t!的值变成了"1",也是对的。然后一直运行到这行,!t!变成了"0",并且这句也显示了出来。但下面的就都显示不出来了!看!t!的值也都是"0"啊!为什么此时
if /i !t!=="0" echo %%i这句就不执行了呢?
期待高手帮我分析一下!
[ Last edited by fantasybb on 2009-4-16 at 12:05 ]

所以代码不规范,呵呵。之所以用t=“0”就是因为有时候若用t=0有时候后面会“莫名其妙”地多个空格。现在明白了,哈哈
