标题: dos中只能用goto来表示条件循环吗?
[打印本页]
作者: ssyfzy
时间: 2007-10-6 20:28
标题: dos中只能用goto来表示条件循环吗?
所谓条件循环是指满足某一条件执行循环
如
:ag
....
if ... goto ag
但是在for语句中
for %%f in (*.txt) do (
:ag
...
if ... goto ag
)
在for中似乎不能用goto来循环(你可以试试),那怎么来表达条件循环呢?
作者: lxmxn
时间: 2007-10-6 22:42
1、用if ... for;
2、用 for... if ... call;
作者: huangxiaohao
时间: 2007-10-6 22:49
正在学习中......
作者: ssyfzy
时间: 2007-10-7 06:39
二楼能说说具体的格式吗?
比如:
: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 12:13
for %%f in (*.txt) do (
:ag
...
if ... goto ag
)
改为:
for %%f in (*.txt) do (
call :ag
)
goto ......
:ag
...
if ... goto ag
就可以了
作者: ssyfzy
时间: 2007-10-7 12:46
谢谢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 16:56
if...for 就是if 条件 for %%.......
for..if...call 就是FOR %%...IF 条件 CALL :标号
goto ag跟call :ag是不一样的,goto ag 就跳到标号ag call :ag就是调用标号ag,标号ag后的命令执行完了后返回到call :ag后面的语句
作者: lxmxn
时间: 2007-10-7 17:34
goto 和 call 一个很重要的区别是call可以带参数,而goto不行。
作者: ssyfzy
时间: 2007-10-7 18:39
如果有两个call :标号语句怎么写?
比如:
call :flag1
call :flag2
.....
:flag1
....
(call :flag1到此为止)
:flag2
.....
我想让call:flag1只执行flag1部分,也就是只执行到:flag2之前
该怎么写呢?
作者: 不得不爱
时间: 2007-10-7 18:41
call :flag1
call :flag2
.....
:flag1
....
goto :eof
:flag2
.....
goto :eof
作者: lxmxn
时间: 2007-10-7 18:41
在flag1部分最后加一个goto :EOF。