vb脚本只删除文本文件中的特定行

时间:2014-02-10 17:04:11

标签: vbscript

有人能够帮助我使用vbscript吗?我有一个简单的文本文件存储在D:\Projects

这是一小部分内容(在记事本中完成):

Header 1 (this will always vary and be one simple line of text)

Captain:  John Doe 1
Team Roster: Temp\filename blah blah
Team Roster: Permanent\filename blah blah

Header 2 (this will always vary and be one simple line of text)

Captain:  John Doe 2
Team Roster: Temp\filename blah blah
Team Roster: Permanent\filename blah blah

我需要的是除了标题之外要在文件中删除的所有内容,并且每个标题都需要重复。所以最终结果如下:

Header line 1
Header line 1
Header line 2
Header line 2  etc...

我意识到人们在空闲时间来到这里做志愿者,所以任何帮助都会非常感激。我不知道如何编程,否则我会自己这样做。感谢。

1 个答案:

答案 0 :(得分:0)

假设文件中始终存在“Captain”和“Team Roster”并且Header正在更改,您可以执行以下操作(输出将为.stripped.txt)

stripFile "D:\Projects\File.txt"

Sub stripFile(fileName)

  Dim strOutputFile, strInputFile, strLine
  Dim objFSO, objOutputFile, objInputFile

  strOutputFile = Left(WScript.ScriptFullName, Len(WScript.ScriptFullName) - Len(WScript.ScriptName)) & fileName & ".stripped.txt"

  Set objFSO = CreateObject("Scripting.FileSystemObject") 

  Set objOutputFile = objFSO.OpenTextFile(strOutputFile, 8, True)   
  Set objInputFile = objFSO.OpenTextFile(fileName, 1)

  Do While objInputFile.AtEndOfStream = False
    strLine = objInputFile.ReadLine

    If Mid(strLine, 1, 7) <> "Captain" Then
      If Mid(strLine, 1, 11) <> "Team Roster" Then
        If strLine <> "" Then
          objOutputFile.WriteLine strLine
        End If
      End If
    End If
  Loop  

  objOutputFile.Close
  objInputFile.Close

  Set objOutputFile = Nothing
  Set objInputFile = Nothing
  Set objFSO = Nothing

End Sub