![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 18:08 |
共 48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 菜单选择功能 |
| 可打印版本 834 / 5 |
| 第1楼 DOSLER | 发表于 2008-03-09 20:30 |
| 新手上路 发帖 6 积分 18 | |
|
菜单选择功能 DOS功能调用31H或4C所提供的一字节的返回码,通过批处理子命令IF和ERRORLEVEL对返回码进行处理,可达到自动执行一批命令的目的。在批处理文件中实现所有高级语言的菜单提示功能,使批处理文件变得更加灵活方便。先用DEBUG建立一个菜单驱动程序MENU.COM,对应地编写一个批处理文件lg.bat。具体内容和方法如下:
DEBUG -166C:0100 MOV DX,111 -166C:0103 MOV AH,09 -166C:0105 INT 21 -166C:0107 MOV AH,01 -166C:0109 INT 21 -166C:010B MOV AH,4C -166C:010D INT 21 -166C:010F INT 20 -166C:0111 DB '***********************'0D 0A -166C:0131 DB '*1.Turbo Pascal 5.00*'0D 0A -166C:0151 DB '*2.Turbo Basic 1.00*'0D 0A -166C:0171 DB '*3.Turbo Prolog 2.00*'0D 0A -166C:01B1 DB '*3.Turbo C 2.00*'0D 0A -166C:01B1 DB '*4.Exit*'0D 0A -166C:01F1 DB '***********************'0D 0A -166C:01F1 DB 'Your choicce(0..4):'24 0D 0A 1A -166C:0209 -RCX CX0000 :108 -N MENU.COM -W Writing 0108 bytes -Q 再建立一个批处理文件,调用菜单驱动程序,根据返回的字节码作出相应的处理。 @ECHO OFF START CLS MENU IF ERRORLEVEL 52 GOTO C IF ERRORLEVEL 51 GOTO PRO IF ERRORLEVEL 50 GOTO BAS IF ERRORLEVEL 49 GOTO PAS IF ERRORLEVEL 48 GOTO EX CLS GOTO START :PAS TURBO.EXE GOTO START :BAS BASIC.EXE GOTO START :PRO PROLOG.EXE GOTO START :C TC.EXE GOTO START :EX @ECHO ON 执行LG,屏幕左上角先出现一个菜单,并提示用户输入选择,当选择的功能执行结束,重新返回主菜单请求选择,直到选择“0”号功能,程序结束返回DOS。 |
|
| 第2楼 zaa | 发表于 2008-03-10 10:20 |
| 新手上路 发帖 5 积分 14 | |
|
请问 debug 我在 xp 下执行 debug 后,
照着您上面的输入 但是会发生 error ??? 可否简单说明怎么建立 debug 文件,谢谢喔~~ |
|
| 第3楼 zh159 | 发表于 2008-03-10 11:03 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
每做一个菜单就得做一个MENU.COM,还不如用choice来得方便菜单,可以直接在BAT内做菜单
|
|
| 第4楼 qzwqzw | 发表于 2008-03-10 11:28 |
| 银牌会员 发帖 636 积分 2,343 | |
|
不知道楼主从那本历史书上择出来的
cmd下实现选择有set/p dos下实现选择有choice 或许有个有用的地方 就是在cmd下实现单键选择 不过需要改进一下 将以上代码保存为ch.scr 再使用debug < ch.scr 编译得到 ch.com ch.com将菜单文字的输出交由echo完成 只负责将输入键的ASCII码转换为对应的errorlevel 这样不仅节省了代码 也省得每次输出新菜单都需要重新汇编 比如以下的例子 当然,即使如此 03的choice.exe仍然比这个要好得多 [ Last edited by qzwqzw on 2008-3-10 at 11:50 AM ] |
|
| 第5楼 plp626 | 发表于 2008-03-10 13:39 |
| 银牌会员 发帖 1,020 积分 2,278 | |
|
哈,来个鼠标点击的菜单选项功能呀
|
|
| 第6楼 qzwqzw | 发表于 2008-03-11 09:41 |
| 银牌会员 发帖 636 积分 2,343 | |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |