如何使用 vbscript 将一个文件中的文本替换为另一个文件中的文本?
被替换的文本位于文件中间的某个位置。
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, "")
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),并且在处理非常大的文件时可能会遇到问题。在这种情况下,可以编辑代码以逐行读取/搜索/替换/写入数据。
如果您要搜索的文本不是连续的并且都在同一行,那么搜索/替换过程会更复杂,并且此代码将需要额外的工作来处理它。