我有很多HTML页面需要更改相同的几行文本。为了减少在记事本中手动打开每个文本并查找文本并将其替换为新文本所需的时间,我想创建一个脚本来为我执行此操作。
如何打开HTML文件,阅读构成页面的代码并查找&替换它中的文字?我知道如何打开,阅读,查找/替换,编写,关闭文本文件,但有没有办法用HTML文件来做?
答案 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