中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-10-02 01:03
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,279 会员排行
DOS批处理 & 脚本技术(批处理室) » 帮忙优化一下及修改?
可打印版本  1,132 / 1
第1楼 guo882633 发表于 2010-04-01 22:23
初级用户 发帖 53 积分 126 来自 -
帮忙优化一下及修改?
@echo off
mode con lines=20 cols=90

:sot
cls
echo.
set ID=
set /p ID= 请输入3位学生代号码:
for /f "tokens=1*" %%i in ('findstr "%ID:~0,10%" mdb.txt') do (
cls
echo.
echo 学生号:%ID%
echo.
echo.
echo 学生信息:%%j
)
pause >nul 2>nul
goto sot

mdb.txt内容
00001 张三 语文 成绩:100分
00002 张四 语文 成绩: 85分
00003 张五 语文 成绩: 90分

请高手帮忙改下,把结果分行显示出来(例:姓名一行。科目一行。成绩一行显示出来)
谢谢
第2楼 Hanyeguxing 发表于 2010-04-02 13:07
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
'findstr "%ID:~0,10%" mdb.txt'这样使用是错误的,例如ID为1时,findstr是无法区分00001和00011与成绩:100分这些的。

允许ID为1或01或001或0001或00001等,等效为00001
变量%m%为学生ID的最大值
推荐mdb.txt中ID为从00001开始的连续数字
如果输入的ID与mdb.txt中的ID完全一致,则:n到::查询中间的部分可以不用

[ Last edited by Hanyeguxing on 2010-4-2 at 14:52 ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023