中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » 求助,如果在批处理中实现等待用户输入?
作者:
标题: 求助,如果在批处理中实现等待用户输入? 上一主题 | 下一主题
airayuu
初级用户





积分 27
发帖 12
注册 2006-9-15
状态 离线
『楼 主』:  求助,如果在批处理中实现等待用户输入?

在批处理执行过程中,等待用户输入,
本来想使用set/p xxx=yyy 来实现,不过发现没有效果,在纯DOS下没有/P参数。
有没有其他办法?不能是CHOICE,因为要输入的字符数大于2个以上。

2007-12-6 01:02
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 2 楼』:  

纯DOS下确实不支持set /p,只好使用第三方的程序了。例如wbat。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2007-12-6 10:19
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
knightak
初级用户




积分 35
发帖 17
注册 2008-4-3
状态 离线
『第 3 楼』:  

仅供参考:
--------------------------
REPLY.COM 批处理文件中用于允许用户输入来控制程序流的程序。 例如, 以下 AUTOEXEC.BAT 文件允许您确定是否要在启动期间安装鼠标驱动程序:

@Echo off
path=C:\DOS
:Ask
Echo Install Mouse Driver (y/n)?
Reply
If errorlevel 121 if not errorlevel 122 goto install
If errorlevel 89 if not errorlevel 90 goto install
If errorlevel 110 if not errorlevel 111 goto NoMouse
If errorlevel 78 if not errorlevel 79 goto NoMouse
goto ask
:install
c:\mouse\mouse
:NoMouse
cls
ver


----------------------
REPLY.COM
要创建 REPLY.COM, 输入文本指令列中列出。 每个指令后按 Enter。 请不要输入文本注释列中列出 ; 它是供您参考。

Instruction Comment
----------- -------

DEBUG Executes MS-DOS DEBUG utility
-A 100 Begin assembling instructions at memory location
100
xxxx:0100 MOV AH,08 Get character input without echo
xxxx:0102 INT 21 Perform MS-DOS service
xxxx:0104 CMP AL,0 Compare AL with zero
xxxx:0106 JNZ 010A If lead zero, get second code of character
xxxx:0108 INT 21 Perform MS-DOS service
xxxx:010A MOV AH,4C Terminate process with return code
xxxx:010C INT 21 Perform MS-DOS service
xxxx:010E <ENTER>
-rcx
CX 0000
:e
-n REPLY.COM
-w
Writing 000E bytes
-q

2008-4-4 10:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chishingchan
银牌会员




积分 1282
发帖 538
注册 2002-11-2
状态 离线
『第 4 楼』:  

3楼请解释一下返回值的含义,让大家学习一下。

2008-4-6 16:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
abcd
银牌会员





积分 1436
发帖 739
注册 2007-10-11
状态 离线
『第 5 楼』:  

3楼的汇编只能输入一个字符的

通过21号中断的8号功能读取一个字符,保存在al寄存器中。这个结果就是errorlevel中的值。

而那些121、89、110、78分别对应字母y和n的大小写的ASCII码的十进制值。

2008-4-7 01:26
查看资料  发短消息 网志  OICQ (470237592)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: