Board logo

标题: [奇怪]这是怎么回事啊? [打印本页]

作者: ssyfzy     时间: 2007-10-6 12:27    标题: [奇怪]这是怎么回事啊?
当前目录有4个txt文件,1.txt 2.txt 3.txt 4.txt和一个批处理文件
a.bat:
@echo off
setlocal enabledelayedexpansion
for %%a in (*.txt) do (
echo %%a
set/a n=0
:ag
set/a n+=1
if not !n!==3 goto ag
)
pause

如果没有最后的if语句,会显示
1.txt
2.txt
3.txt
4.txt
为什么有这个if后,只显示
1.txt
呢?

这个if并没有改变for循环啊

作者: 不得不爱     时间: 2007-10-6 14:28
因为在一个语句体里不能有标号,有了也不能让语句体里的转向语句转向语句体里的标号.

作者: ssyfzy     时间: 2007-10-6 19:10

因为在一个语句体里不能有标号,有了也不能让语句体里的转向语句转向语句体里的标号.

楼上的不对,比如:
@echo off
setlocal enabledelayedexpansion
if 1==1 (
:ag
echo ok
set/a p+=1
if !p! lss 3 goto ag
)
pause

会显示3个OK

Last edited by ssyfzy on 2007-10-7 at 12:40 PM ]