set /p
прекращает чтение ввода при обработке новой строки. Это можно увидеть с помощью простого сценария
@echo off
set /p "line=String containing newline:"
echo %line%
и затем вставив строку
one
two
Будет отображаться только one
.
Если вы знаете, сколько строк вам нужно обработать, вы можете сгруппировать свои команды
set /p
в блок кода и перенаправить файл в него следующим образом:
(
set /p "a="
set /p "b="
set /p "c="
)<test.txt
(echo %a% %b% %c%)>result.txt
Вы также можете взять введите имя входного файла в качестве параметра и измените test.txt
на %1
в этом фрагменте.