![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-04 10:03 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何跳出内层的for循环并返回到外层的for循环? |
| 可打印版本 1,314 / 7 |
| 第1楼 zzfer | 发表于 2007-04-27 01:05 |
| 初级用户 发帖 18 积分 50 | |
|
如何跳出内层的for循环并返回到外层的for循环? 有两个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楼 everest79 | 发表于 2007-04-27 01:18 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
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楼 zzfer | 发表于 2007-04-29 06:25 |
| 初级用户 发帖 18 积分 50 | |
|
Thanks 多谢
|
|
| 第4楼 lxmxn | 发表于 2007-04-29 09:14 |
| 版主 发帖 4,938 积分 11,386 | |
Originally posted by everest79 at 2007-4-26 12:18: 这样当%%i等于%%j时不就退出了批处理吗? |
|
| 第5楼 dikex | 发表于 2007-04-29 09:22 |
| 高级用户 发帖 366 积分 788 | |
|
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楼 dikex | 发表于 2007-04-29 09:33 |
| 高级用户 发帖 366 积分 788 | |
|
发多一个简单的例子,其他的可以在上面扩展
@echo off for /l %%a in (6,1,10) do ( if "%%a"=="9" goto :end echo %1 %%a ) :end pause exit |
|
| 第7楼 zzfer | 发表于 2007-05-01 22:55 |
| 初级用户 发帖 18 积分 50 | |
|
谢谢大家 谢谢大家
|
|
| 第8楼 stornager | 发表于 2007-05-02 11:32 |
| 中级用户 发帖 131 积分 328 | |
|
echo %1 %%a这句为何这样写??去掉%1岂不更简短??我相知到这样写有什么好处。请dikex兄回答。
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |