
私は2つの選択肢を持つスクリプトを扱っています: Y=はい/操作1とN=いいえ/操作のキャンセル。はいを選択すると、キャンセルのメッセージが最初に印刷されます。それから操作 1 が実行されます。適切なメッセージは対応する選択肢に対してのみ表示されるようにしたいです。コードは次のとおりです。
@ECHO OFF
:choice
echo.
echo Do you want to proceed with the process?
echo Enter Y to run or N to cancel.
set /p :choice=
if /I "%c%" EQU "Y" goto :YES
if /I "%c%" EQU "N" goto :NO
:NO
echo The operation has been cancelled...
PAUSE
goto :END
:YES
:: Additional code for operation 1 goes here.
echo The operation has been completed successfully!
PAUSE
:END
答え1
set /p varName=
に保存する値を入力するように求められますvarName
。ステートメントは、まったく異なるものではなく、if
チェックする必要があります。varName
現在、設定:choice
と確認を行っていますc
。(%c%)
変更してみてください
set /p :choice=
if /I "%c%" EQU "Y" goto :YES
if /I "%c%" EQU "N" goto :NO
に
set /p choice=
if /I "%choice%" EQU "Y" goto :YES
if /I "%choice%" EQU "N" goto :NO
私の例では、コマンドの「choice」の前の「:」も削除しました。これは不要と思われるため、ステートメントを次のようにする必要があることset /p
を意味します。if
if /I "%:choice%"