我有一个日志文件,我想用vbscript阅读,该文件每个命令有两行,例如命令本身,然后在下一个命令上,就像上一行的确认一样。
所以我得到了:
xxx,xxx,xxx,Blah - 更多一些等等。
xxx,xxx,xxx,,Blah Ack
我想直接到日志文件的底部,然后逐行读回来,直到我到达第一行没有“Ack”,然后将该行放入变量中把它写出来。
我可以让它的大部分工作,我只能弄清楚如何逐行阅读,直到我看到一条没有Ack的行?
有没有人有任何想法?
这就是我要唱到文件底部的内容:
Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("Y:\Selcall\logs\DEC-20130929.LOG", ForReading)
Do Until objFile.AtEndOfStream
strNextLine = objFile.ReadLine
If Len(strNextLine) > 0 Then
strLine = strNextLine
End If
Loop
objFile.Close
Wscript.Echo strLine
Wscript.Echo Right(strLine, Len(strLine) - 35)
答案 0 :(得分:1)
从技术上讲,您无法从前面读取文件,因此您必须从头开始阅读该文件,并记住不包含关键字Ack
的最后一行:
Do Until objFile.AtEndOfStream
strNextLine = objFile.ReadLine
If InStr(strNextLine, "Ack") = 0 Then strLine = strNextLine
Loop
循环终止后,变量strLine
包含您要查找的行。
答案 1 :(得分:0)
您不能使用FSO的TextStream对象向后移动/读取。您必须从上到下阅读文件并存储/覆盖每个候选行;在.Close之后,存储将包含最后/期望的候选者。