[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理如何根据一个文本列出的字符串逐个查找另一个文本里是否存在这些字符串

麻烦帮忙看看我这个循环代码有什么问题
  1. for /f %%i in (2.txt) do findstr /x %%i 1.txt
  2. if not %errorlevel% == 0 (
  3. echo 1
  4. ) else (
  5. echo 0
  6. )
  7. pause
复制代码
1.txt内容
  1. 王五
  2. 张三
  3. 李四
复制代码
2.txt内容
  1. 赵一
  2. 孙六
  3. 王五
复制代码
我想实现的功能是循环用2.txt里的内容去对比1.txt的内容,每次对比根据errorlevel值进行不同的操作,但是现在是全部对比完后根据最后一次的errorlevel值进行判断的,并非每次对比的errorlevel值,请问应该如何修改循环语句呢

有效,谢谢拉

TOP

回复 1# uncleWang

你的循环代码没有错误,if命令已正确,
只是这两条命令是上下文关联,不是内部关联,
if命令只能判断循环代码的最后一个
如果要每行文本都返回消息,使用下面的试试:
  1. for /f %%i in (2.txt) do (findstr /x "%%i" 1.txt&&echo 0)||(echo 1)
复制代码
1

评分人数

TOP

不太明白,请问有示例吗,谢谢

TOP

既然要每次判断,如此不是应该放到for循环体内么

TOP

返回列表