Board logo

标题: [文本处理] 批处理如何对比两个文件夹的同名文本,如果内容有相同字符串,则输出文件名 [打印本页]

作者: 3518228042    时间: 2017-6-8 11:33     标题: 批处理如何对比两个文件夹的同名文本,如果内容有相同字符串,则输出文件名

目录下有个名为"TXT"的文件夹和一个名为"错误字符"的文件夹,这两个文件夹有许多文件,
比如TXT文件夹里面有文件:
1.txt
2.txt
3.txt
4.txt
5.txt
……
错误字符文件夹里面有文件:
1.txt
4.txt
5.txt
6.txt
8.txt
……

txt文件夹的1.txt内容有:
研究宝研究了半天
txt文件夹的4.txt内容有:
研究室藏了很久还是没有头绪

txt文件夹的其他txt可能有研究宝或研究室

错误字符文件夹的1.txt内容为:
研究宝
错误字符文件夹的4.txt内容为:
研究室

运行批处理后,读取错误字符文件夹里面各个txt的字符串进行对比,
如果txt文件夹相对应的文件有相关字符,就把文件名提取出来保存为 有错误字符的文件.txt

也就是说,如果txt文件夹的2.txt内容有“研究宝藏没有丝毫进展”,这个文件名是不提取的,而1.txt和4.txt却要把文件名提取出来
作者: ShowCode    时间: 2017-6-8 13:54

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for %%a in ("错误字符文件夹\*.txt") do (
  4.     set /p keyword=<"%%a"
  5.     if exist "txt\%%~nxa" (
  6.         findstr "!keyword!" "txt\%%~nxa" > nul
  7.         if !errorlevel! equ 0 (
  8.             echo %%~nxa
  9.         )
  10.     )
  11. ))>"有错误字符的文件.txt"
复制代码

作者: 3518228042    时间: 2017-6-8 18:13

短句子可以,如果对比的字符串是一个很长的行的话会发生内存不足




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