标题: BAT代码如何比较两个文本? [打印本页]
作者: qjxx 时间: 2013-2-20 22:42 标题: BAT代码如何比较两个文本?
举个例子
A文本内容为
123123 广州 10ml A12 30
156464 上海 20ml A13 20
456799 北京 15mg B12 10
B文本内容为
123123 广州 10ml A12 3
156464 上海 20ml A13 2
456799 北京 15mg B12 10
我要的结果C文本为"
123123 广州 10ml A12 3
156464 上海 20ml A13 2
我是以B文本文件的横向为数据组(有5组),跟A文本文件里的横向数据组(有5组)比较,前面4组数据相同,最后一处数据不相同的。
就把B的数据写到C文本里。
作者: apang 时间: 2013-2-21 16:07
本帖最后由 apang 于 2013-2-22 14:37 编辑
保存为test.vbs,试试- Set FSO = CreateObject("Scripting.FileSystemObject")
- Set f = FSO.OpenTextFile("a.txt")
- Do Until f.AtEndOfStream
- s = f.ReadLine '循环读取a.txt每一行
- Text = Text & s & vbLf
- '在每行后加换行符,赋值给变量Text
- Loop
- f.Close :Set f = Nothing
-
- Set f = FSO.OpenTextFile("b.txt")
- Do Until f.AtEndOfStream
- s = f.ReadLine '循环读取b.txt每一行
- If InStr(vbLf & Text,vbLf & s & vbLf) = 0 Then GetStr
- '如果该行字串在Text变量中不存在
- Loop
- MsgBox "OK"
-
- Sub GetStr()
- Set Re = New RegExp
- Re.Pattern = "^(.*\s+)\S+$" '正则表达式
- For Each a in Re.Execute(s)
- If InStr(vbLf & Text,vbLf & a.SubMatches(0)) Then
- '如果该行前4项字串在Text中存在,将该行写入c.txt
- FSO.OpenTextFile("c.txt",8,True).WriteLine s
- End If
- Next
- End Sub
复制代码
还是保险点,修改下
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |