Как с помощью bat-файла добавить слово в строки файла?

Как с помощью батника проходить по файлу с примерно следующим содержимым (там таких строчек много):

INSERT INTO data.weld VALUES (34, 1, NULL, NULL, 20, 1, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'Стык 113', '12 °С', '113', 6);
INSERT INTO data.weld VALUES (8, 1, NULL, NULL, 6, 1, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, '2020-08-04 00:00:00+03', 'Стык 1-1', '12 °С', '9-1-1', 1);
INSERT INTO data.weld VALUES (11, 1, 2, NULL, 6, 1, 1, 1, 6, 1, '750*60', '2', 1, '780*8', '3', NULL, NULL, 'Стык 1-4', '10 °С', '9-1-4', 1);

INSERT INTO data.weld_qc_method VALUES (2, 1, 'МИ1', 12, 1, NULL, 15, NULL, 'N', 3);
INSERT INTO data.weld_qc_method VALUES (3, 9, 'НК 1-2', 1, 3, '2020-03-10 00:00:00+03', 15, 24, 'Y', 1);
INSERT INTO data.weld_qc_method VALUES (6, 9, 'НК 1-2-1', 1, 3, '2020-03-10 00:00:00+03', 15, 24, 'Y', 2);

И добавлять слово "_temp" после "data.название таблицы", чтобы файл выглядел так:

INSERT INTO data.weld_temp VALUES (34, 1, NULL, NULL, 20, 1, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'Стык 113', '12 °С', '113', 6);
INSERT INTO data.weld_temp VALUES (8, 1, NULL, NULL, 6, 1, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, '2020-08-04 00:00:00+03', 'Стык 1-1', '12 °С', '9-1-1', 1);
INSERT INTO data.weld_temp VALUES (11, 1, 2, NULL, 6, 1, 1, 1, 6, 1, '750*60', '2', 1, '780*8', '3', NULL, NULL, 'Стык 1-4', '10 °С', '9-1-4', 1);

INSERT INTO data.weld_qc_method_temp VALUES (2, 1, 'МИ1', 12, 1, NULL, 15, NULL, 'N', 3);
INSERT INTO data.weld_qc_method_temp VALUES (3, 9, 'НК 1-2', 1, 3, '2020-03-10 00:00:00+03', 15, 24, 'Y', 1);
INSERT INTO data.weld_qc_method_temp VALUES (6, 9, 'НК 1-2-1', 1, 3, '2020-03-10 00:00:00+03', 15, 24, 'Y', 2);

Пробовал проходить по строкам файла и искать подстроку "data.название таблицы" следующим образом:

@FOR /F %%x IN ('findstr "\<data.*" *.* C:\dump.sql') DO ...

Но это не работает. Что я делаю не так?

===============================================
Прикрепляю код, который не понимаю почему не работает:

@echo off
setlocal EnableExtensions EnableDelayedExpansion
set "INTEXTFILE=old_file.txt"
set "OUTTEXTFILE=new_file.txt"
for /f "tokens=1-3*" %%a in ("%INTEXTFILE%") do (if "%%a"=="INSERT" (echo %%a %%b %%c_temp %%d >> "%OUTTEXTFILE%") else (echo %%a %%b %%c %%d >> "%OUTTEXTFILE%"))
del "%INTEXTFILE%"
rename "%OUTTEXTFILE%" "%INTEXTFILE%"
endlocal

Ответы (2 шт):

Автор решения: Aziz Umarov

Проходить по строкам файла

@echo off
for /f "delims=" %%a in (the-file.txt) DO ( 
  ECHO Line is: %%a
)

А вот пример другой ответ отсюда

@echo off
setlocal EnableExtensions EnableDelayedExpansion
set "INTEXTFILE=test.txt"
set "OUTTEXTFILE=test_out.txt"
set "SEARCHTEXT=bath"
set "REPLACETEXT=hello"

for /f "delims=" %%A in ('type "%INTEXTFILE%"') do (
    set "string=%%A"
    set "modified=!string:%SEARCHTEXT%=%REPLACETEXT%!"
    echo !modified!>>"%OUTTEXTFILE%"
)

del "%INTEXTFILE%"
rename "%OUTTEXTFILE%" "%INTEXTFILE%"
endlocal
→ Ссылка
Автор решения: Akina

Достаточно одной команды:

for /f "tokens=1-3*" %a in (old_file.txt) do (if "%a"=="INSERT" (echo %a %b %c_temp %d >> new_file.txt))
→ Ссылка