Мне нужно сделать несколько операций поиска и замены для одного файла.Настройка выглядит следующим образом:
Текстовые данные - File.txt Данные о замене - File2.txt
Структура File2.txt выглядит следующим образом:
ABC,XYZ
MNB,OPI
GHI,TRY
Первый столбец - мое оригинальное имя (например, ABC) и заменен вторым именем (например, XYZ).Это должно быть сделано в оригинальном файле File.txt
. Я могу написать код, чтобы сделать одно изменение или увеличить имя с ABC на ABC_Date, но я не совсем понимаю, как выполнять цикл и читать как из, так и изимена.
Любая помощь приветствуется.
Мне удалось решить эту проблему путем склеивания ответов из: Как найти и заменить текст в файле, используя среду командной строки Windows?
Как перебрать каждую строку в текстовом файле с помощью пакетного файла Windows?
Код:
for /F "tokens=1,2,3" %%i in (myfile.txt) do call :process %%i %%j %%k
goto thenextstep
:process
@echo %1
@echo %2
cscript replace.vbs "C:\newfile.txt" "%1" "%2"
goto :EOF
replace.vbs
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