如何使用VBS在文本文件中搜索变量

时间:2012-11-27 17:31:21

标签: scripting vbscript wsh

需要帮助我正在撰写的一段代码。我是脚本新手,所以请原谅。

基本上在下面的代码中,每当找到文本“Busy working Thread Id =”时,我intBusyThreads递增1。

Do While oTextFile.AtEndOfStream <> True
  strLine = oTextFile.ReadLine
  If inStr(strLine, "Busy Working Thread Id=") Then
    intBusyThreads = intBusyThreads + 1
  End If
Loop

但是,如果线程ID不同,我只希望它增加。

例如:

  

繁忙的工作线程ID = 0x01
  繁忙的工作线程Id = 0x05
  繁忙的工作线程ID = 0x01

在这个例子中,我的代码只会增加intBusyThreads 2,因此线程Id 01和05是唯一的。我在尝试找到允许我这样做的代码时遇到了麻烦。由于线程Id将始终更改,我不知道如何指定该变量。 (希望这很有意义)我尝试了一些诸如strcomp()之类的东西。建议?

谢谢!

1 个答案:

答案 0 :(得分:1)

使用唯一的线程ID创建dictionary,并仅在字典中不存在当前ID时递增计数器:

Set uniqueIDs = CreateObject("Scripting.Dictionary")

Do While oTextFile.AtEndOfStream <> True
  strLine = oTextFile.ReadLine
  If inStr(strLine, "Busy Working Thread Id=") Then
    id = Split(strLine, "=")(1)
    If Not uniqueIDs.Exists(id) Then
      intBusyThreads = intBusyThreads + 1
      uniqueIDs.Add id, True
    End If
  End If
Loop