Board logo

标题: [文本处理] 批处理如何根据关键字查找另一个文本中是否存在相同内容 [打印本页]

作者: blwwlj    时间: 2017-3-17 22:37     标题: 批处理如何根据关键字查找另一个文本中是否存在相同内容

用一文件的内容,在另一文件中查看,要有查找的反馈结果(找到、未找到都要处理)
各位大神好,刚开始学批处理,有一个问题想请各位帮忙下

目前有一文件A,需要按照A文件中的内容,在文件B中的查看:
先读取文件A的第一行,在文件B中查找,若此行已找到,继续查找下一行,以此类推,直到当前行在B中找不到为止;若此行没有找到,跳出for循环
最后需要:
(1)找到的文件(有可能是多个),输出到文件E
(2)未找到的文件(只有一个),输出到文件F
文件A和B请参考附件,文件输出后:
文件E应为:
2017-03-14_aaa.del
2017-03-14_bb.del

文件F应为:
2017-03-14_cc.del
作者: ShowCode    时间: 2017-3-19 20:57

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. >"e.txt" type nul
  4. for /f %%i in ('more "a.txt"') do (
  5.     if "%%~xi" neq "" (
  6.         set "file=%%i"
  7.         set "file=!file:~0,-1!"
  8.         findstr /i /x "!file!" "b.txt" > nul
  9.         if errorlevel 1 (
  10.             >"f.txt" echo !file!
  11.             goto :eof
  12.         ) else (
  13.             >>"e.txt" echo !file!
  14.         )
  15.     )
  16. )
复制代码

作者: terse    时间: 2017-3-19 21:52

  1. @echo off
  2. findstr /ig:a.txt b.txt
  3. echo;
  4. findstr /ivg:a.txt b.txt
  5. pause
复制代码

作者: ShowCode    时间: 2017-3-19 22:56

回复 3# terse


    感觉这样无法实现楼主要求的“遇到查不到的就结束程序”




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2