中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-04 11:50
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何跳出内层的for循环并返回到外层的for循环? 查看 1,317 回复 7
楼 主 如何跳出内层的for循环并返回到外层的for循环? 发表于 2007-04-27 01:05 ·  中国 北京 联通
初级用户
积分 50
发帖 18
注册 2007-04-20 05:57
19年会员
UID 85810
性别 女
状态 离线
有两个for循环,想跳出内层的返回到外层的for循环,应该怎么办?
不知dos有类似break,continue之类的语句么?
具体代码:
@echo off
for /f "delims=" %%i in (1.txt) do call :ss %%i
:ss
set a=%1
setlocal ENABLEDELAYEDEXPANSION
for /f "delims=" %%j in (2.txt) do (
set b=%%j
if !a! NEQ !b! echo %%j>new.txt

在此处加入退出内层for循环的语句

)


多谢!
2 发表于 2007-04-27 01:18 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
for /f "delims=" %%i in (1.txt) do (
for /f "delims=" %%j in (2.txt) do (
if "%%i" == "%%j" echo %%j>new.txt&&goto :eof
)
)
好像这样可以,不过类似这样的查询,用findstr /G:1.txt 2.txt>>new.txt更方便一点
3 Thanks 发表于 2007-04-29 06:25 ·  中国 北京 联通
初级用户
积分 50
发帖 18
注册 2007-04-20 05:57
19年会员
UID 85810
性别 女
状态 离线
多谢
4 发表于 2007-04-29 09:14 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
Originally posted by everest79 at 2007-4-26 12:18:
for /f "delims=" %%i in (1.txt) do (
for /f "delims=" %%j in (2.txt) do (
if "%%i" == "%%j" echo %%j>new.txt&&goto :eof
)
)
好像这样可以 ...

这样当%%i等于%%j时不就退出了批处理吗?
5 发表于 2007-04-29 09:22 ·  中国 广东 广州 天河区 电信
高级用户
★★★
潜水修练批处理
积分 788
发帖 366
注册 2006-12-31 02:43
19年会员
UID 75048
性别 男
状态 离线
for循环时用call调用另一个for,在那个for里面用goto :eof就可以了,如:

@echo off
for /l %%i in (1,1,5) do call :doit %%i
pause
eixt
:doit
for /l %%a in (6,1,10) do (
if "%%a"=="9" goto :eof
echo %1 %%a
)
goto :eof
6 发表于 2007-04-29 09:33 ·  中国 广东 广州 天河区 电信
高级用户
★★★
潜水修练批处理
积分 788
发帖 366
注册 2006-12-31 02:43
19年会员
UID 75048
性别 男
状态 离线
发多一个简单的例子,其他的可以在上面扩展

@echo off
for /l %%a in (6,1,10) do (
if "%%a"=="9" goto :end
echo %1 %%a
)
:end
pause
exit
7 谢谢大家 发表于 2007-05-01 22:55 ·  中国 北京 联通
初级用户
积分 50
发帖 18
注册 2007-04-20 05:57
19年会员
UID 85810
性别 女
状态 离线
谢谢大家
8 发表于 2007-05-02 11:32 ·  中国 湖北 武汉 电信
中级用户
★★
scriptlover
积分 328
发帖 131
注册 2007-03-25 22:17
19年会员
UID 82910
性别 男
状态 离线
echo %1 %%a这句为何这样写??去掉%1岂不更简短??我相知到这样写有什么好处。请dikex兄回答。
scriptlover
Be with script forever!!
论坛跳转: