![為什麼我的腳本要列印 wrog 訊息?](https://rvso.com/image/1558686/%E7%82%BA%E4%BB%80%E9%BA%BC%E6%88%91%E7%9A%84%E8%85%B3%E6%9C%AC%E8%A6%81%E5%88%97%E5%8D%B0%20wrog%20%E8%A8%8A%E6%81%AF%EF%BC%9F.png)
我正在使用一個有兩種可能選擇的腳本: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%"