Командная строка Windows: как передать многострочные параметры строки
У меня есть программа, которая принимает строковый параметр. Я создаю командный файл, который выполняет программу и многострочный строковый параметр. У меня также есть второй параметр после многострочной строки.
C:\>MyProgram "This is a
multiline text" parameter2
Когда я запускаю это, в команду включается только первая строка строки, а последующие строки и второй параметр игнорируются. Есть ли способ передать многострочные строковые параметры?
Ответы
Ответ 1
Ваш вопрос дублируется -
Windows: Как указать многострочную команду в командной строке?
В командной строке Windows ^ используется для выхода из следующей символа в командной строке.
Например, (запрос More?):
C:\>cd "c:\Program Files" ^
More? "\Common Files"
C:\>MyProgram "This is a " ^
More? "multiline text" parameter2
Ответ 2
Вы можете сохранить ^ вывод как переменную
set br= ^
<</br (newline)>>
<</br>>
пример:
@echo off
setlocal enableExtensions enableDelayedExpansion
rem cd /D "%~dp0"
set br= ^
rem br, can't be saved to a var. by using %..%;
set "t=t1!br!t2!br!t3"
for /f "usebackq tokens=* delims=" %%q in ('!t!') do (
echo %%q
)
:scIn
rem endlocal
pause
rem exit /b
; выход:
t1
t2
t3
Press any key to continue . . .