标题: 关于嵌套for语句循环终止的问题
[打印本页]
作者: gibson
时间: 2008-5-20 23:35
标题: 关于嵌套for语句循环终止的问题
题目:有一个文件a.txt,内容如下
123
456
789
abc
def
一个b.txt文件,内容如下
5
b
要求是将a文件里不含b文件各行内容的航提取出来
我写的批处理程序如下:
for /f "tokens=*" %%a in (a.txt) do (
for /f "tokens=*" %%i in (b.txt) do (
@echo %%a|findstr %%i>null&&goto end
)
echo %%a>>c.txt
:end
echo off
)
最后c.txt文件内容是
123
不知道为什么一旦执行goto语句后外循环也终止了,有没有高手能帮助下
作者: terse
时间: 2008-5-20 23:42
这个意思?
findstr /vg:b.txt a.txt>c.txt
作者: gibson
时间: 2008-5-20 23:48
楼上好强,一个语句就搞定,真是名(签名)副其实
还想知道那个循环嵌套的中止有什么问题
作者: zqz0012005
时间: 2008-5-20 23:52
for内部不要使用标号 一个再经典不过的问题了
作者: gibson
时间: 2008-5-20 23:54
哦,是这样,那是不是有嵌套循环时就没法只终止内循环了?
作者: terse
时间: 2008-5-21 00:08
Quote: |
Originally posted by gibson at 2008-5-20 23:54:
哦,是这样,那是不是有嵌套循环时就没法只终止内循环了? |
|
可以试试这样
@echo off
for /f "tokens=*" %%i in (a.txt) do call:lp "%%i"
pause
goto :eof
:lp
for /f "tokens=*" %%i in (b.txt) do echo %~1|findstr %%i >nul&&goto :eof
echo %~1>>c.txt