需要有 1 & 2 的輸入項 ... 光 IF 是不做不出來的
需要搭被 set /p 的指令 ...
以下的批次檔僅適用於 XP 以上的版本
種類一:直接用多重 IF 直接執行
語法:
@echo off
SETLOCAL
:MENU
cls
ECHO.
ECHO 1.選擇一
ECHO.
ECHO 2.選擇二
ECHO.
ECHO.
ECHO 不執行,請輸入 0 按下[Enter] 確認離開,
ECHO 或輸入1~2並按下 [Enter] 確認選擇。
ECHO.
SET /P confirm= 請輸入(1/2)並按下 [Enter] =
IF "%confirm%" == "0" ( SET confirm= & GOTO END)
IF "%confirm%" == "1" (
cls
echo.
echo 選擇一
echo.
)
IF "%confirm%" == "2" (
cls
echo.
echo 選擇二
echo.
)
GOTO MENU
:NEXT
ENDLOCAL
echo.
echo.
pause
EXIT
:END
種類二:用多重 IF 篩選,在用 goto 跳躍 執行模組
語法:
@echo off
SETLOCAL
:MENU
cls
ECHO.
ECHO 1.選擇一
ECHO.
ECHO 2.選擇二
ECHO.
ECHO.
ECHO 不執行,請輸入 0 按下[Enter] 確認離開,
ECHO 或輸入1~2並按下 [Enter] 確認選擇。
ECHO.
SET /P confirm= 請輸入(1/2)並按下 [Enter] =
IF "%confirm%" == "0" ( SET confirm= & GOTO END)
IF "%confirm%" == "1" ( SET confirm= & GOTO Select_1)
IF "%confirm%" == "2" ( SET confirm= & GOTO Select_2)
GOTO MENU
:Select_1
cls
echo.
echo 選擇一
echo.
GOTO NEXT
:Select_2
cls
echo.
echo 選擇二
echo.
GOTO NEXT
:NEXT
ENDLOCAL
echo.
echo.
pause
EXIT
:END
種類三:用單一 IF 篩選選擇數字節,在用 goto 跳躍指向執行模組
迪西幾乎都是用這種架構,選單結構簡單好維護好改
語法:
@echo off
SETLOCAL
:MENU
cls
ECHO.
ECHO 1.選擇一
ECHO.
ECHO 2.選擇二
ECHO.
ECHO.
ECHO 不執行,請輸入 0 按下[Enter] 確認離開,
ECHO 或輸入1~2並按下 [Enter] 確認選擇。
ECHO.
SET /P confirm= 請輸入(0/1/2)並按下 [Enter] =
IF NOT %confirm% LEQ 2 ( GOTO MENU )
IF %confirm% == 0 ( SET confirm= & GOTO END)
GOTO Select_%confirm%
:Select_1
cls
echo.
echo 選擇一
echo.
GOTO NEXT
:Select_2
cls
echo.
echo 選擇二
echo.
GOTO NEXT
:NEXT
ENDLOCAL
echo.
echo.
pause
EXIT
:END
要用的話 ...
1.要會改 echo 提示訊息
2.要會改紅字的執行部份
3.要會增減 :Select_xx & GOTO NEXT 或 IF 判斷式