我尝试制作一个读取txt的VBScript并搜索两个字符串,然后只给出最后的结果。
字符串1: Hello123
字符串2: Test123
TXT看起来像这样:
27.07.2010 09:45 ... DumDumDum ...
27.07.2010 09:45 ... BlaBlaBla ...
27.07.2010 09:45 ... Hello123 ...
27.07.2010 09:45 ... BlaBlaBla ...
27.07.2010 09:45 ... DumDumDum ...
27.07.2010 09:45 ... DumDumDum ...
27.07.2010 09:45 ... Hello123 ... 'This Result
27.07.2010 09:45 ... BlaBlaBla ...
27.07.2010 09:45 ... BlaBlaBla ...
27.07.2010 09:45 ... DumDumDum ...
27.07.2010 09:45 ... Test123 ...
27.07.2010 09:45 ... DumDumDum ...
27.07.2010 09:45 ... Test123 ... 'And this Result
27.07.2010 09:45 ... DumDumDum ...
27.07.2010 09:45 ... BlaBlaBla ...
我尝试这样的事情,但我不知道该怎么做:
用我认为的ReadALL读取txt,而不是搜索部分。
if string 1 not found then
msgbox "nothing found"
Goto NEXT
else
if string 2 not found then
msgbox "nothing found"
else
msgbox "found"
End if
End if
NEXT
有人有想法可以帮助我吗?
问候, 的Matthias
答案 0 :(得分:2)
如果它不是更大的vbscript程序的一部分并且您可以自由下载内容,则可以使用文件处理工具,例如gawk for windows,例如一个内容
C:\test> gawk "/Hallo123/{h=$0}/Test123/{t=$0}END{print h \"\n\" t}" file
27.07.2010 09:45 ... Hallo123 ... 'This Result
27.07.2010 09:45 ... Test123 ... 'And this Result
使用vbscript,使用instr()检查每个字符串“Hallo123”和“Test123”,如果找到,则为该行指定一个变量。在文件迭代结束时,打印出这两个变量。
搜索“Hallo”的例子
Set objFS = CreateObject("Scripting.FileSystemObject")
'File to scan
strFile = "c:\test\file.txt"
'Pattern to search for, eg Hallo
strPattern = "Hallo"
Set objFile = objFS.OpenTextFile(strFile)
Do Until objFile.AtEndOfStream
strLine = objFile.ReadLine
If InStr(strLine,strPattern)>0 Then
WScript.Echo strLine
H=strLine
End If
Loop
Wscript.Echo H