据我所知,FSO 不知道读取文件中最后一行。 我的场景是验证最后一行并从中获取结果。
假设,如果我需要在最后一行中获得“通过”或“失败”的结果。由于我从第一行开始,我得到正确结果的情况是有限的,因为文件中较早出现的 PASS 或 FAIL 的可能性是有限的。
文件中的最后两行是 失败的 完成!!!
或者
通过 完成!!!
为了获得实际的结果,我使用嵌套 IF 验证来获得结果。下面是相同的片段。
str1 = "Passed"
str2 = "Failed"
str3="Done!!!!"
Do Until objFile.AtEndOfStream
str=objFile.ReadLine
if StrComp(str, str1) = 0 Then
str=objFile.ReadLine
if StrComp(str,str3) = 0 Then
result="PASS"
End if
elseif StrComp(str, str2) = 0 Then
str = objFile.ReadLine
if StrComp(str,str3) = 0 Then
result="FAIL"
End if
End if
Loop
这会影响性能。有没有其他方法可以更好地实现此实现?
最佳答案
这是一个函数,它接受文件名并返回读取的倒数第二行:
Function PenultimateLine(fname)
Dim fso, ts, line1, line2
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile(fname)
Do Until ts.AtEndOfStream
line1 = line2
line2 = ts.ReadLine
Loop
ts.Close
PenultimateLine = line1
End Function
您可以使用此函数提取该行,然后根据“PASS”或“FAIL”对其进行测试(顺便说一下,可以简单地使用 =
而不是 StrCmp 来完成
)
关于vbscript - 本主题是关于用于从文件读取结果的 VBscript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36827308/