web-dev-qa-db-ja.com

バッチスクリプト:SET / pコマンドでスペースを含む文字列を設定できますか?

たとえば、コード。

:void.loop
    set command=
    set /P command=
    if %command%=="this is a test" goto :void.loop

今、私はコマンドプロンプトで「これはテストです "」と書いています。

出力は;

"is =="今回は予期しない

あなたたちはこれを助けることができますか?

変数を引用符で囲みます。また、読みやすくするために==の前後にスペースを追加しますが、これは必須ではありません。

if "%command%" == "this is a test" goto :void.loop
4
Freddy

forコマンド;

:void.loop
    set command=
    set /P command=
    if /i "%command%"=="" goto :void.loop
    if "%command%"=="help" call :void.help
    if "%command%"=="cls" cls
    if "%command%"=="exit" exit
    goto :void.loop

エコーまたはTXTへの書き込み用。

set /p asd=
(
echo %asd%
) > test.txt