我有一个“在文件中搜索和替换”脚本有效,但不是我期望的那样。它有两个问题:
- 如果旧文本后面有更多字符串,它会更改
oldtext
withnewtext
regadless:我想避免这种情况!
我正在从包含以下内容的批处理文件中调用该脚本:
cscript replace.vbs file.txt 你好世界
假设 file.txt 包含:
house
abc.hellowide.use
abc.hello.use
hello
hellonurse
我希望脚本将文件更改为:
house
abc.hellowide.use
abc.world.use
wolrd
hellonurse
目前,脚本会导致不需要的更改,如下所示:
house
abc.worldwide.use
abc.world.use
wolrd
worldnurse
我希望只替换确切的旧文本。
- 如何使脚本从脚本运行的根目录下递归子文件夹?
到目前为止,这是我的脚本:
Const ForReading = 1
Const ForWriting = 2
strFileName = Wscript.Arguments(0)
strOldText = Wscript.Arguments(1)
strNewText = Wscript.Arguments(2)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFileName, ForReading)
strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, strOldText, strNewText,1,1000,1)
Set objFile = objFSO.OpenTextFile(strFileName, ForWriting)
objFile.WriteLine strNewText
objFile.Close