楼 主
[奇怪]这是怎么回事啊?
发表于 2007-10-06 12:27 · 中国 黑龙江 哈尔滨 联通
初级用户
★
积分 64 发帖 27 注册 2007-10-03 11:01 18年会员 UID 98818 性别 男
状态 离线
当前目录有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 · 中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310 发帖 2,044 注册 2005-09-26 12:00 20年会员 UID 42843 性别 男 来自 四川南充
状态 离线
因为在一个语句体里不能有标号,有了也不能让语句体里的转向语句转向语句体里的标号.
第 3 楼
发表于 2007-10-06 19:10 · 中国 黑龙江 哈尔滨 联通
初级用户
★
积分 64 发帖 27 注册 2007-10-03 11:01 18年会员 UID 98818 性别 男
状态 离线
因为在一个语句体里不能有标号,有了也不能让语句体里的转向语句转向语句体里的标号.
楼上的不对,比如:
@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学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正