两个文件 name1.txt name2.txt ,文件里面每行有一个姓名,要将1的名字跟2的名字进行比对,如果1中的名字在2中没有,打印出来,我用两重循环实现了- @echo off&setlocal enabledelayedexpansion
- for /f %%i in (name1.txt) do (
- set /a a = 0
- for /f %%j in (name2.txt) do (
- if %%i == %%j ( set /a a = 1 )
- )
- if !a! == 0 ( echo %%i )
- )
- pause
复制代码 不过我想到了,如果name2有上万行或者更多的时候,而如果第一行或者前面几行就有匹配结果,那个里面的循环会作无用功的照样运行一遍。而for里面又不能用标签跳转吧,批处理又没有continue的命令。
然后我想到 findstr 命令,是否可以替换掉中间的循环进行操作呢。我不会如何操作findstr返回的内容进行判断。 |