中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » dos中只能用goto来表示条件循环吗?
作者:
标题: dos中只能用goto来表示条件循环吗? 上一主题 | 下一主题
ssyfzy
初级用户





积分 64
发帖 27
注册 2007-10-3
状态 离线
『楼 主』:  dos中只能用goto来表示条件循环吗?

所谓条件循环是指满足某一条件执行循环

:ag
....
if ... goto ag


但是在for语句中

for %%f in (*.txt) do (

:ag
...

if ... goto ag
)

在for中似乎不能用goto来循环(你可以试试),那怎么来表达条件循环呢?

2007-10-6 20:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  

1、用if ... for;
2、用 for... if ... call;

2007-10-6 22:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
huangxiaohao
初级用户





积分 29
发帖 15
注册 2007-10-6
状态 离线
『第 3 楼』:  

正在学习中......

2007-10-6 22:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ssyfzy
初级用户





积分 64
发帖 27
注册 2007-10-3
状态 离线
『第 4 楼』:  

二楼能说说具体的格式吗?
比如:
:ag
set/a p+=1
if exist !p!.txt goto ag

[ Last edited by ssyfzy on 2007-10-7 at 06:50 AM ]

2007-10-7 06:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 5 楼』:  

for %%f in (*.txt) do (

:ag
...

if ... goto ag
)
改为:
for %%f in (*.txt) do (

call :ag
)
goto ......
:ag
...

if ... goto ag
就可以了



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2007-10-7 12:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ssyfzy
初级用户





积分 64
发帖 27
注册 2007-10-3
状态 离线
『第 6 楼』:  

谢谢5楼,
另外请问3楼说的
if...for

for..if...call 是什么?
还有
goto ag跟call :ag是一样的吗?

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

2007-10-7 12:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 7 楼』:  

if...for 就是if 条件 for %%.......
for..if...call 就是FOR %%...IF 条件 CALL :标号
goto ag跟call :ag是不一样的,goto ag 就跳到标号ag call :ag就是调用标号ag,标号ag后的命令执行完了后返回到call :ag后面的语句



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2007-10-7 16:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 8 楼』:  

goto 和 call 一个很重要的区别是call可以带参数,而goto不行。

2007-10-7 17:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ssyfzy
初级用户





积分 64
发帖 27
注册 2007-10-3
状态 离线
『第 9 楼』:  

如果有两个call :标号语句怎么写?
比如:
call :flag1
call :flag2

.....

:flag1

....

(call :flag1到此为止)
:flag2
.....

我想让call:flag1只执行flag1部分,也就是只执行到:flag2之前
该怎么写呢?

2007-10-7 18:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 10 楼』:  

call :flag1
call :flag2

.....

:flag1

....

goto :eof
:flag2
.....
goto :eof



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2007-10-7 18:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 11 楼』:  

在flag1部分最后加一个goto :EOF。

2007-10-7 18:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: