文字列パラメータを受け入れるプログラムがあります。プログラムと複数行の文字列パラメータを実行するバッチファイルを作成します。複数行の文字列の後に2番目のパラメータもあります。
C:\>MyProgram "This is a
multiline text" parameter2
これを実行すると、文字列の最初の行のみがコマンドに含まれ、後続の行と2番目のパラメーターは無視されます。複数行の文字列パラメータを渡す方法はありますか?
あなたの質問はに重複しています- Windows:コマンドプロンプトで複数行のコマンドを指定する方法は?
Windowsコマンドプロンプトでは、^を使用してコマンドラインの次の文字をエスケープします。
たとえば、(More?はプロンプトです):
C:\>cd "c:\Program Files" ^
More? "\Common Files"
C:\>MyProgram "This is a " ^
More? "multiline text" parameter2
^の出力を変数として保存できます
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 . . .