Во-первых, я не могу поверить, что у вас действительно есть перевод строки в вашем параметре %1
, как это возможно, но немного сложнее добиться этого.
Для контроля вы можете использовать
echo on
rem # %1 #
Для обработки символов CR и перевода строки необходимо использовать отложенное расширение, так как процентное расширение такого содержимого невозможно.
С процентным расширением CR всегда удаляются, переводы строки удаляют остальную часть строки или в контексте блока они добавляют новую командную строку.
Таким образом, невозможно обрабатывать контент с помощью перевода строки в параметре, подобном %1
.. %9
.
Вы должны хранить это в переменной.
Если у вас есть содержимое с символами новой строки в переменной, вы можете заменить его пробелами.
Пустые строки в этом примере важны для результата.
@echo off
set text=This contains a ^
newline
setlocal EnableDelayedExpansion
set ^"result=!text:^
= !"
echo Content of text is "!text!"
echo ----
echo Content of result is "!result!"
--- Вывод ---
Content of text is "This contains a
newline"
----
Content of result is "This contains a newline"