Я пытаюсь заменить текст в файле несколько раз.Однако, как только я заменяю текст один раз, он заменяется снова.
Я использую файл .vbs, который заменяет текст, и файл .bat, который повторно выполняет файл .vbs.Я пытаюсь выполнить его таким образом, чтобы после замены текста он не заменялся снова.
У меня есть один файл .vbs с именем replace.vbs, полученный по этой ссылке:
Как найти и заменить текст в файле, используя среду командной строки Windows?
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)
Set objFile = objFSO.OpenTextFile(strFileName, ForWriting)
objFile.Write strNewText 'WriteLine adds extra CR/LF
objFile.Close
И у меня есть файл .bat, который выполняет replace.vbs несколько раз (полныйСценарий запускает replace.vbs 56 раз)
SET abcpath=C:\test\myFile.txt
cscript replace.vbs %abcpath% "Hello World" "Testing"
cscript replace.vbs %abcpath% "Testing" "Text"
PAUSE
Текст в myFile.txt - «Hello World Testing», предполагаемый вывод - «Testing Text», однако вывод - «Text Text».Как я могу выполнить второй раз, когда выполняется replace.vbs, игнорируя весь текст, который был заменен в первый раз, когда он был выполнен?
Возможно, что существует более простое решение, которое уклоняется от меня, поэтому я вернусьна шаг.Что я на самом деле пытаюсь сделать, так это взять текстовый файл, в котором есть буквы от a до g (верхний и нижний регистр), за которыми следуют до 3 апострофов или до 4 запятых (ни в коем случае не запятые и апострофы).Есть 52 комбинации, и я пытаюсь сопоставить каждую возможную комбинацию с одной буквой (52 разных буквы, потому что она чувствительна к регистру)