标题: [文本处理] [已解决]BAT脚本如何显示文本中重复出现的内容? [打印本页]
作者: lxningbat 时间: 2012-10-17 10:47 标题: [已解决]BAT脚本如何显示文本中重复出现的内容?
本帖最后由 lxningbat 于 2012-10-18 20:57 编辑
如 1.txt 中有:
01 02 03
02 03 04
03 04 05
即显示 02 03 04
怎么去查找对比?
作者: mxxcgzxxx 时间: 2012-10-17 10:56
本帖最后由 mxxcgzxxx 于 2012-10-17 10:58 编辑
用FOR读取内容,转成函数,进行累计,最后显示大于1的函数名
不过你的是固定三列吗?如果不是就要用双FOR
作者: lxningbat 时间: 2012-10-17 11:16
回复 2# mxxcgzxxx
感谢你的思路!这里面不只三行,可能会有十几行或更多,由于学学艺不精只懂很基础的for,转成函数啥的不懂,还请指点!
作者: 乱码 时间: 2012-10-17 11:43
- Set oDic = CreateObject("Scripting.Dictionary")
- Set fso = CreateObject("Scripting.FileSystemObject")
- Set fin = fso.OpenTextFile("1.txt",1)
- While Not fin.AtEndOfStream
- data = Split(Trim(fin.ReadLine)," ")
- For i=0 To UBound(data)
- If oDic.Exists(data(i)) Then
- oDic(data(i)) = oDic(data(i))+1
- Else
- oDic.Add data(i),1
- End If
- Next
- Wend
- fin.Close
-
- Set fout = fso.OpenTextFile("2.txt",2,1)
- For Each x In oDic
- If oDic(x)>1 Then fout.Write x & " "
- Next
- fout.Close
-
- MsgBox "完成!"
复制代码
VBS代码,不会bat没办法、
作者: wc726842270 时间: 2012-10-17 13:34
本以为仅是在群里问呢,还是在发一下吧
[CODE]
@echo off
for /f "delims=" %%i in (1.txt) do (
for %%j in (%%i) do (
if not defined %%j (set %%j=#) else (if not defined a%%j (echo %%j&&set a%%j=1))
)
)
pause
[/CDOE]
PS:4L的方法,应该没什么问题,一开始也想用数组了,
作者: lxningbat 时间: 2012-10-17 14:30
本帖最后由 lxningbat 于 2012-10-17 14:43 编辑
回复 5# wc726842270
非常感谢二位! 4L的可能,5L大侠的能否只显示在一行?
现在又有一个新的问题,如刚才的:
01 02 03
02 03 04
03 04 05
在这里面03出现了3次,02 04各出现了2次,那么,只显示出现最高次数的那些呢?
作者: 乱码 时间: 2012-10-17 16:37
回复 6# lxningbat
Set oDic = CreateObject("Scripting.Dictionary")
Set fso = CreateObject("Scripting.FileSystemObject")
Set fin = fso.OpenTextFile("1.txt",1)
max = 0 '最高出现次数
While Not fin.AtEndOfStream
data = Split(Trim(fin.ReadLine)," ")
For i=0 To UBound(data)
If oDic.Exists(data(i)) Then
oDic(data(i)) = oDic(data(i))+1
If max<oDic(data(i)) Then max = oDic(data(i))
Else
oDic.Add data(i),1
End If
Next
Wend
fin.Close
Set fout = fso.OpenTextFile("2.txt",2,1)
For Each x In oDic
If oDic(x)=max Then fout.Write x & " "
Next
fout.Close
MsgBox "完成!"
水平不够,只会VBS,不过效果不错,而且可以按要求任意扩展、
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |