為什麼我的腳本要列印 wrog 訊息?

為什麼我的腳本要列印 wrog 訊息?

我正在使用一個有兩種可能選擇的腳本: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

請注意,在我的範例中,我還刪除了命令中“選擇”之前的“:”,set /p因為它似乎沒有必要,並且意味著您的if語句需要if /I "%:choice%"

相關內容