1

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

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

4

2 回答 2

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, "")
于 2008-11-11T15:06:13.480 回答
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),并且在处理非常大的文件时可能会遇到问题。在这种情况下,可以编辑代码以逐行读取/搜索/替换/写入数据。

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

于 2012-07-27T00:11:18.337 回答