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