0

我有一个我想用 vbscript 读取的日志文件,该文件对于每个命令有两行,例如命令本身,然后在下一行,就像对上一行的确认一样。

所以我得到:

xxx,xxx,xxx, ,废话 - 更多废话

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)
4

2 回答 2

1

从技术上讲,您不能从头读取文件,因此您必须从头开始读取文件并记住不包含关键字的最后一行Ack

Do Until objFile.AtEndOfStream
  strNextLine = objFile.ReadLine
  If InStr(strNextLine, "Ack") = 0 Then strLine = strNextLine
Loop

循环终止后,变量strLine包含您要查找的行。

于 2013-09-29T09:44:04.503 回答
0

您不能使用 FSO 的TextStream对象向后移动/读取。您必须从上到下读取文件并存储/覆盖每个候选行;在 .Close 之后,存储将包含最后/所需的候选人。

于 2013-09-29T09:45:21.840 回答