
[已解決]批處理choice命令選擇后進行errorlevel判斷的疑惑最后由 Echo11 于 -2-22 19:50一、以下“功能測試1”,正常執行和選擇。
二、以下“功能測試2”,判斷選擇部分采用了網上的語法方式if errorlevel 1,中間沒有“==”運算符,errorlevel 也沒有加“%%”,一直不明白這是什么語法?實際測試效果:比如選2,只要是<=2的選項都會執行。nclick="copycode($('code0'));">復制代碼
- @echo off
- Title choice命令功能測試1
- :menu1
- echo.
- echo 1:起床
- echo.
- echo 2:睡覺
- echo.
- echo 3:退出
- echo.
- choice /C:123 /M 請選擇:
- if %errorlevel%==1 echo.你選擇了 1&pause
- if %errorlevel%==2 echo.你選擇了 2&pause
- if %errorlevel%==3 echo.你選擇了 3&pause
- if %errorlevel%==0 echo.你Ctrl+Break 或 Ctrl+C了?好像到不了這? &pause
- echo debug: hmm...
- goto :menu1
- exit /B
三、以下“功能測試3”。網上給出if errorlevel 1這種語法的人,基本都做了一個注釋:就是順序要從大到小如這里的測試代碼3。但是實際測試結果同2,不管如何調整順序,比如選2,只要是<=2的選項都會執行。(網上的方法能走通是因為他們都GOTO了或在選項那行EXIT了)nclick="copycode($('code1'));">復制代碼
- @echo off
- Title choice命令功能測試2
- :menu1
- echo.
- echo 1:起床
- echo.
- echo 2:睡覺
- echo.
- echo 3:退出
- echo.
- choice /C:123 /M 請選擇:
- if errorlevel 1 echo.你選擇了 1&pause
- if errorlevel 2 echo.你選擇了 2&pause
- if errorlevel 3 echo.你選擇了 3&pause
- if errorlevel 0 echo.你Ctrl+Break 或 Ctrl+C了?好像到不了這? &pause
- echo debug: hmm...
- goto :menu1
- exit /B
求大神詳解一下1、網上if errorlevel 1這種用法到底什么意思?2、如果if errorlevel 1是有效的,那為何會如果不跳轉或退出,會依次執行小于等于選擇值的選項?3、如果if errorlevel 1是無效的(用原true),那為何選2的時候,選項3又不會執行?nclick="copycode($('code2'));">復制代碼
- @echo off
- Title choice命令功能測試3
- :menu1
- echo.
- echo 1:起床
- echo.
- echo 2:睡覺
- echo.
- echo 3:退出
- echo.
- choice /C:123 /M 請選擇:
- if errorlevel 3 echo.你選擇了 3&pause
- if errorlevel 2 echo.你選擇了 2&pause
- if errorlevel 1 echo.你選擇了 1&pause
- if errorlevel 0 echo.你Ctrl+Break 或 Ctrl+C了?好像到不了這? &pause
- echo debug: hmm...
- goto :menu1
- exit /B

