У меня есть скрипт «поиск и замена в файле», который работает, но не так, как я ожидаю. У него 2 проблемы:
- он заменяет
oldtext
наnewtext
без regadd, если старый текст имеет больше строк после него: я хочу избежать этой ситуации!
я вызываю этот скрипт из пакетного файла, который содержит:
cscript replace.vbs файл.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