我在从交换机SNMP输出计数端口时遇到问题。我有超过2000个文本文件,如下所示:
"301SW00134" Model:"WS-C2950G-24-EI"
1
1
1
1
2
1
1
1
2
1
1
2
2
2
2
1
1
1
2
2
1
2
1
1
1
1
1
1
Sum:
"301SW00140" Model:"WS-C2950G-24-EI"
1
2
...
每个txt文件中大约有200个开关。其中一些有24个端口,有48个。每个文件代表不同的小时。
例如:
1Jun03_00_01这意味着该文件于6月1日下午3点导出
我想计算每个交换机的每个文件中的所有文件,然后在每个交换机的每个文件中绘制一个UP端口图表。
1表示端口已启动,2表示已关闭。
我尝试过excel,但它并没有顺利进行。
你们知道一些可以完成这项工作的工具吗?我想在一些数据库中导出这些文件然后计数。你怎么看 ?
答案 0 :(得分:0)
这将使您开始处理单个文件。
如果line包含Model,则将新的SwitchCounter添加到数组
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile ("C:\Users\best buy\Downloads\stackoverflow\test.txt", 1)
Dim arCounters, intSize
i = 0
Do Until objFile.AtEndOfStream
s = objFile.ReadLine
If InStr(s,"Model:") Then
Set counter = New SwitchCounter
counter.Init s
If i = 0 Then
ReDim arCounters(0)
Else
ReDim Preserve arCounters(i)
End If
Set arCounters(i) = counter
i = i + 1
Else
If IsNumeric(s) Then counter.Add s
End If
Loop
For Each counter In arCounters
WScript.Echo counter.name
Next
Class SwitchCounter
Public model
Public name
Public Count
'"301SW00134" Model:"WS-C2950G-24-EI"
Public Sub Init(s)
s = Replace(s,"Model:", "")
s = Replace ( s,Chr(34), "")
model = Split(s, " ")(1)
name = Split(s, " ")(0)
End Sub
Public Sub Add(n)
Count = Count + CInt(n)
End Sub
End Class