中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-13 03:57
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS学习入门 & 精彩文章 (教学室) » [奇怪]这是怎么回事啊?
可打印版本  839 / 2
第1楼 ssyfzy 发表于 2007-10-06 12:27
初级用户 发帖 27 积分 64
[奇怪]这是怎么回事啊?
当前目录有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循环啊
第2楼 不得不爱 发表于 2007-10-06 14:28
超级版主 发帖 2,044 积分 5,310 来自 四川南充
因为在一个语句体里不能有标号,有了也不能让语句体里的转向语句转向语句体里的标号.
第3楼 ssyfzy 发表于 2007-10-06 19:10
初级用户 发帖 27 积分 64

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

楼上的不对,比如:
@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 ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023