如何打开HTML文件作为文本文件以使用VBScript读取代码?

时间:2009-11-18 18:48:55

标签: html text vbscript scripting

我有很多HTML页面需要更改相同的几行文本。为了减少在记事本中手动打开每个文本并查找文本并将其替换为新文本所需的时间,我想创建一个脚本来为我执行此操作。

如何打开HTML文件,阅读构成页面的代码并查找&替换它中的文字?我知道如何打开,阅读,查找/替换,编写,关闭文本文件,但有没有办法用HTML文件来做?

2 个答案:

答案 0 :(得分:5)

html文件是文本文件,只需像打开任何其他文本文件一样打开它们。

所以代替:

Dim fileReader As New System.IO.StreamReader("c:\file.txt")

只是做

Dim fileReader As New System.IO.StreamReader("c:\file.html")

通常,编程语言中的文本阅读器并不真正关心文件的扩展,只要它包含文本即可。

[编辑]

woosa,对不起,我想我在评论中将vbscript与常规的visual basic混淆了。

在vbscript中,常规方法是使用FileSystemObject,就像Helen建议的那样。

答案 1 :(得分:3)

HTML文件是文本文件,因此您可以像读取任何其他文本文件一样阅读它们(例如,使用FileSystemObject对象)。

  

现在,有没有办法让我的脚本在不知道名字的情况下打开指定文件夹中的所有.html文件?

您可以枚举Folder.Files集合并检查文件扩展名,如下所示:

Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0

Dim oFSO, oFolder, oFile, oTextStream, strText

Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\MyFolder")

For Each oFile In oFolder.Files
  If LCase(oFSO.GetExtensionName(oFile.Name)) = "html" Then

    Set oTextStream = oFile.OpenAsTextStream(ForReading, TristateUseDefault)
    strText = oTextStream.ReadAll
    oTextStream.Close

    ' Do something with strText '

    Set oTextStream = oFile.OpenAsTextStream(ForWriting, TristateUseDefault)
    oTextStream.Write strText
    oTextStream.Close

  End If
Next