[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 Nsqs 于 2016-12-27 09:00 编辑
  1. dim read(1),sc(1),m(1,1)
  2. set fso=CreateObject("Scripting.FileSystemObject")
  3. set regexp=new regexp
  4. file=array("a.txt","b.txt")
  5. with regexp
  6.     .Global=-1:.IgnoreCase=-1
  7.     .Pattern="(\d).*(\d).*(\d).*(\d)"
  8.     for list=0 to ubound(file)
  9.         read(list)=.Replace(fso.opentextfile(file(list)).readall,"$1$2$3$4")    '格式化文本剔除其他字符包括空格和特殊字符在内
  10.         sc(list)=split(read(list),vbcrlf)
  11.     next
  12.     .Pattern="((\d{2})\d{2})"
  13.     for list1=0 to ubound(sc(0))
  14.         m(0,0)=.replace(trim(sc(0)(list1)),"$2")
  15.         m(0,1)=.Replace(sc(0)(list1),"$1")
  16.         for list2=ubound(sc(1)) to 0 step -1
  17.             if not .test(sc(0)(list1)) then exit for    '文本行数不一或条件不符则忽略本次比较
  18.             m(1,0)=.replace(trim(sc(1)(list2)),"$2")
  19.             m(1,1)=.Replace(sc(1)(list2),"$1")
  20.             if m(0,0)=m(1,0) then result=result&trim(m(1,1))&vbcrlf    '满足条件提取b.txt数据
  21.         next
  22.     next
  23.     .Pattern="(\d)(\d)(\d)(\d)":result=.Replace(result,"$1 $2 $3 $4")
  24.     .Pattern="^(.*)\n$":if .test(result) then result=.Replace(result,"$1")    '恢复空格间距
  25. end with
  26. fso.createtextfile("new.txt").write result
  27. set fso=nothing:set regexp=nothing
复制代码
来个vbs版

TOP

返回列表