Вы можете вставить все строки вместе, если общий размер меньше 8192 символов.
И передайте результат в новый файл с одним CR / LF в конце.
setlocal EnableDelayedExpansion
set "text="
for/f "delims=" %%a in (multiLine.txt) do (
set "text=!text!%%a"
)
>newFile.txt echo !text!
Вы также можете использовать set /p
для вывода текста без CR / LF, но он не может обрабатывать знаки равенства и пробелы спереди.
РЕДАКТИРОВАТЬ: Первое решение работает, но есть проблемы с пустыми строками и восклицательными знаками.
Это решение, которое устраняет обе проблемы.
@echo off
setlocal EnableDelayedExpansion
set file=multiLine.txt
set "AllText="
for /F "tokens=2 delims=:" %%L in ('find /c /v "" %file%') do set /a "len=%%L"
<%file% (
for /L %%n in (1,1,!len!) DO (
set "line="
set /p "line="
set "AllText=!AllText!!line!"
)
)
>newFile.txt echo(!AllText!