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

[文本处理] 【已解决】批处理如何对比出两个文本差异/不同的内容/地方并提取出相应的内容区域?

求助各路大神,如题,BAT实现新老文件比对(如内容新增,删除,修改等等),提取差异文本区域(如本例固定以---------------------------划分各个区域)
在最新文件基础上提取,本例中即基于NEW.txt提取),
文本样例及预期结果文件(本例预期结果文件:DIFF.txt)见下例附件:
2

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2
    • pcl_test: 未按版规发帖PB -6

本帖最后由 pcl_test 于 2016-5-26 21:51 编辑
  1. //&cls&cscript -nologo -e:jscript "%~f0" "new.txt" "old.txt"&pause&exit
  2. var t = {};
  3. var fso = new ActiveXObject('Scripting.FileSystemObject');
  4. var newtxt = fso.OpenTextFile(WSH.Arguments(0));
  5. var n = newtxt.ReadAll().replace(/[\r\n]+$/, '').split(/(\r\n){2,}/);
  6. var oldtxt = fso.OpenTextFile(WSH.Arguments(1));
  7. var o = oldtxt.ReadAll().replace(/[\r\n]+$/, '').split(/(\r\n){2,}/);
  8. for(var i=0; i<o.length; i++){
  9.     if(!t[o[i]])t[o[i]]=1;
  10. }
  11. for(var i=0; i<n.length; i++){
  12.     if(!t[n[i]])WSH.echo(n[i]+'\r\n');
  13. }
复制代码
1

评分人数

TOP

膜拜版主

TOP

返回列表