CODE: [Copy to clipboard]
@echo off&setlocal enabledelayedexpansion&mode con lines=20 cols=90
:s
cls&echo.&set "a=此学生代号码因"&set "b=而出错&goto e"&set m=100&set n=0&set ID=
set/p ID= 请输入%a:~1,5%:
if "%ID%"=="" echo %a%为空%b%
:n
if not "!ID:~%n%,1!"=="" set/a n+=1 &goto n
if %n% gtr 5 echo %a%长度超出范围%b%
set i=%ID%
for /l %%i in (0 1 9) do if not "!i!"=="" set "i=!i:%%i=!"
if not "%i%"=="" echo %a%含有非法字符%b%
for /l %%i in (5 -1 1) do if !ID:~0^,%%i! equ 0 set ID=!ID:~%%i!
if %ID% gtr %m% echo %a%数值超出范围%b%
set ID=0000%ID%&set ID=!ID:~-5!
::查询
for /f "tokens=1-3,*" %%i in (mdb.txt) do if "%%i"=="%ID%" cls&echo.&echo 学生号:%ID%&echo.&echo.&echo. 姓名:%%j&echo. 科目:%%k&echo. %%l
:e
echo.&echo.&echo.请按任意键重新开始&pause>nul
goto s
允许ID为1或01或001或0001或00001等,等效为00001