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

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

目录下有个名为"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却要把文件名提取出来

  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"
复制代码
1

评分人数

测试代码之前请做好备份

TOP

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

TOP

返回列表