如何使用vbscript用另一个文件中的文本替换一个文件中的文本?

时间:2008-11-11 14:57:19

标签: vbscript

如何使用vbscript将一个文件中的文本替换为另一个文件中的文本?

要替换的文本位于文件中间的某个位置。

2 个答案:

答案 0 :(得分:4)

filea.txt: 你好残酷的世界

fileb.txt: 残酷

filec.txt: 快乐

在执行以下操作后,

将使sResult =“hello happy world”。

Dim oFSO
Dim sFileAContents
Dim sFileBContents
Dim sFileCContents
Dim sResult
Set oFSO = CreateObject("Scripting.FileSystemObject")
sFileAContents = oFSO.OpenTextFile("c:\filea.txt").ReadAll()
sFileBContents = oFSO.OpenTextFile("c:\fileb.txt").ReadAll()
sFileCContents = oFSO.OpenTextFile("c:\filec.txt").ReadAll()
sResult = Replace(sFileAContents, sFileBContents, "")

答案 1 :(得分:0)

FileToSearch是包含您要搜索替换的文本的文件 FileReplaceText是包含替换文本的文件

编辑变量strTextToFind的值以包含您要搜索和替换的文本

Dim objFSO
Dim strFileToSearch
Dim strFileReplaceText

Dim strTextToFind
Dim strTextToSearch
Dim strTextReplaceText
Dim strFinalText

    strFileToSearch = "C:\FileToSearch.txt"
    strFileReplaceText = "C:\FileReplaceText.txt"

    strTextToFind = "text to search for here"

    Set objFSO = CreateObject("Scripting.FileSystemObject")  
    strTextToSearch = objFSO.OpenTextFile(strFileToSearch).ReadAll()  
    strFileReplaceText = objFSO.OpenTextFile(strFileReplaceText).ReadAll()  

    strFinalText = Replace(strTextToSearch, strTextToFind, strFileReplaceText)  

如果要将此最终文本写回文件,请添加以下代码:

Const ForWriting = 2
Dim strFileFinalOutput

    strFileFinalOutput = "C:\FileFinalOutput.txt"

    Set objTextFile = objFSO.OpenTextFile(strFileFinalOutput, ForWriting, True)
    objTextFile.Write strFinalText
    objTextFile.Close
    Set objTextFile = Nothing

此代码将整个文件读入内存(.ReadAll),并且可能会遇到非常大的文件问题。在这种情况下,可以编辑代码以逐行读取/搜索/替换/写入数据。

如果您要搜索的文本不是连续的并且所有文本都在同一行,那么搜索/替换过程就会更加复杂,而且此代码需要额外的工作来处理它。