VBScript在TXT中搜索两个字符串

时间:2010-07-27 08:03:09

标签: string vbscript wsh text-files

我尝试制作一个读取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

1 个答案:

答案 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