:cho
set choice=
set /p choice= 请选择:
IF NOT "%Choice%"=="" SET Choice=%Choice:~0,1%
if /i "%choice%"=="1" goto 1
if /i "%choice%"=="2" goto 2
if /i "%choice%"=="3" goto 3
if /i "%choice%"=="4" goto 4
if /i "%choice%"=="5" goto 5
if /i "%choice%"=="6" goto 6
if /i "%choice%"=="7" goto 7
if /i "%choice%"=="8" goto 8
if /i "%choice%"=="9" goto 9
if /i "%choice%"=="10" goto 10
echo 选择无效,请重新输入
echo.
pause>nul
goto 1
问题一、SET Choice=%Choice:~0,1%
所以if /i "%choice%"=="10" goto 10这里choice取不到10。只取到1。
问题二、
echo 选择无效,请重新输入
echo.
pause>nul
goto 1
这里表示即使输入错误,也跳到1的标签处。
干嘛不改成
echo 选择无效,请重新输入
echo.
pause>nul
goto cho