Board logo

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

作者: uncleWang    时间: 2016-11-25 10:08     标题: 批处理如何根据一个文本列出的字符串逐个查找另一个文本里是否存在这些字符串

麻烦帮忙看看我这个循环代码有什么问题
  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值,请问应该如何修改循环语句呢
作者: pcl_test    时间: 2016-11-25 10:27

既然要每次判断,如此不是应该放到for循环体内么
作者: uncleWang    时间: 2016-11-25 11:45

不太明白,请问有示例吗,谢谢
作者: CommandBatCmd    时间: 2016-11-25 14:58

回复 1# uncleWang

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

作者: uncleWang    时间: 2016-11-25 15:23

有效,谢谢拉




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