中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 通过大家努力,批处理可告别choice
« [1] [2] [3] [4] »
作者:
标题: 通过大家努力,批处理可告别choice 上一主题 | 下一主题
wangff
初级用户





积分 134
发帖 54
注册 2008-11-19
状态 离线
『第 31 楼』:  

可否举个例子?

2008-12-11 13:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
s11ss
银牌会员





积分 2098
发帖 566
注册 2007-9-11
状态 离线
『第 32 楼』:  



  Quote:
Originally posted by wangff at 2008-12-11 01:33 PM:
可否举个例子?

choice /?

2008-12-11 14:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wangff
初级用户





积分 134
发帖 54
注册 2008-11-19
状态 离线
『第 33 楼』:  

我是这样理解的:
1.关于键盘输入choice不外乎也是用ah=0及ah=1两基本功能来实现的
2.choice再好也不是每套系统都有预装(我的xp就没有)
3.choice功能再強也是固定的,而p只要有了这两基本功能其它的就发挥大家的想象能力,是鱼好还是渔杆好大家都明白
4.告别choice作为一个目标,大家共同努力

[ Last edited by wangff on 2008-12-11 at 15:11 ]

   此帖被 +2 点积分    点击查看详情   
评分人:【 HAT 分数: +2  时间:2008-12-11 17:48


2008-12-11 14:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 34 楼』:  

这样就不用那么多跳转了
...
ping -n 2 127.1>nul
if %n% LEQ 5 goto loop

echo.
echo 计时到,自动运行!
pause




2008-12-11 18:19
查看资料  发短消息 网志   编辑帖子  回复  引用回复
qzwqzw
银牌会员

天的白色影子


积分 2342
发帖 635
注册 2004-3-6
状态 离线
『第 35 楼』:  

“是鱼好还是渔杆好大家都明白”
相信真正明白的没有几个
毕竟与鱼相比
鱼竿还需要一汪水和一片饵

如果真要说鱼竿好
那么再问是鱼竿与木棍+线+钩子孰好?
而鱼与红烧鲤鱼孰好?
又该怎么抉择

别忘了debug在cmd是个很麻烦的东西
用起来会有很多潜在的问题(不仅仅是代码页)

   此帖被 +2 点积分    点击查看详情   
评分人:【 wangff 分数: +2  时间:2008-12-11 19:15


2008-12-11 18:33
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wangff
初级用户





积分 134
发帖 54
注册 2008-11-19
状态 离线
『第 36 楼』:  

35楼说的有道理,但:
"别忘了debug在cmd是个很麻烦的东西
用起来会有很多潜在的问题(不仅仅是代码页)"

本人确实不知,能否告知一二,如果致命则放弃这种想法.因debug为p嵌入小汇编成为可行,我觉得廷重要的.

[ Last edited by wangff on 2008-12-11 at 19:32 ]

2008-12-11 19:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qzwqzw
银牌会员

天的白色影子


积分 2342
发帖 635
注册 2004-3-6
状态 离线
『第 37 楼』:  

大约的情形可以参考下面的帖子
http://www.cn-dos.net/forum/viewthread.php?tid=9452
http://www.cn-dos.net/forum/viewthread.php?tid=20682

目前已知的是
使用Debug必然要启用ntvdm
而它是与cmd差异很大的一种命令行环境
比如命令行自动完成
比如长短文件名

2008-12-12 09:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wxcute
中级用户





积分 458
发帖 211
注册 2006-7-26
状态 离线
『第 38 楼』:  

还有个问题,这个 choice 不能暂停等待输入(可能就是楼上 qzwqzw 兄说的 "命令行自动完成" 罢),而是一直在 :loop 标签里循环。



┌───────┐
├→学习→实践→┤
└───────┘
2008-12-12 12:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wangff
初级用户





积分 134
发帖 54
注册 2008-11-19
状态 离线
『第 39 楼』:  

37楼的问题正在确认...
38 楼的问题 应该不存在,是否会沒带参,是哪一搂的程序?

2008-12-12 14:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wxcute
中级用户





积分 458
发帖 211
注册 2006-7-26
状态 离线
『第 40 楼』:  回复 39 楼 wangff

是我没看清,原来 27 楼有带参数暂停的功能。

还有一个问题(环境 XP SP3)
动态检测时如果按了某些键(如 Ctrl)之后就会假死,即再按什么也没有反应了。
快速按几个字母也会出现上述情况。
不知带参执行时会不会?



┌───────┐
├→学习→实践→┤
└───────┘
2008-12-12 14:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wangff
初级用户





积分 134
发帖 54
注册 2008-11-19
状态 离线
『第 41 楼』:  

"假死"现象会出现,正在找原因...
但应该与debug无关,inc.com也会.

2008-12-12 15:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
s11ss
银牌会员





积分 2098
发帖 566
注册 2007-9-11
状态 离线
『第 42 楼』:  

写了一段代码,可返回ascii:
>i.com echo h#CX-~AP[hSTX-#pP]3/1/h$CX-}AP[h#JX-V3P]3/1/h'CX-~AP[h$pX-p#P]3/1/h#CX-xAP[h?EX-r#P]3/1/uK
i
echo %errorlevel%


2008-12-13 03:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chenall
银牌会员




积分 1276
发帖 469
注册 2002-12-23
来自 福建泉州
状态 离线
『第 43 楼』:  

都系强人,看不懂收藏下备用.



QQ:366840202
http://chenall.net
2008-12-13 18:24
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (366840202)  编辑帖子  回复  引用回复
winxos
新手上路





积分 3
发帖 3
注册 2007-10-20
状态 离线
『第 44 楼』:  好

不过还是借助了汇编。

2008-12-17 21:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
mmfy
新手上路





积分 6
发帖 5
注册 2008-5-1
状态 离线
『第 45 楼』:  这是我的一个想法:


@echo off
echo h#CX-~AP[hSTX-#pP]3/1/h$CX-}AP[h#JX-V3P]3/1/h'CX-~AP[h$pX-p#P]3/1/h#CX-xAP[h?EX-r#P]3/1/uK>key.com
chcp 437>nul&graftabl 936>nul
color 2f
:1
cls
echo 请输入密码:%es%
key
set pk=%errorlevel%
set tmp=
if %pk%==13 goto t1
if %pk%==8 goto backspace
if %pk%==97 set tmp=a
if %pk%==98 set tmp=b
if %pk%==99 set tmp=c
if %pk%==100 set tmp=d
if %pk%==101 set tmp=e
if %pk%==102 set tmp=f
if %pk%==103 set tmp=g
if %pk%==104 set tmp=h
if %pk%==105 set tmp=i
if %pk%==106 set tmp=j
if %pk%==107 set tmp=k
if %pk%==108 set tmp=l
if %pk%==109 set tmp=m
if %pk%==110 set tmp=n
if %pk%==111 set tmp=o
if %pk%==112 set tmp=p
if %pk%==113 set tmp=q
if %pk%==114 set tmp=r
if %pk%==115 set tmp=s
if %pk%==116 set tmp=t
if %pk%==117 set tmp=u
if %pk%==118 set tmp=v
if %pk%==119 set tmp=w
if %pk%==120 set tmp=x
if %pk%==121 set tmp=y
if %pk%==122 set tmp=z
if %pk%==48 set tmp=0
if %pk%==49 set tmp=1
if %pk%==50 set tmp=2
if %pk%==51 set tmp=3
if %pk%==52 set tmp=4
if %pk%==53 set tmp=5
if %pk%==54 set tmp=6
if %pk%==55 set tmp=7
if %pk%==56 set tmp=8
if %pk%==59 set tmp=9
if %tmp%== goto 1
set es=%es%*
set ep=%ep%%tmp%
goto 1
:backspace
if "%ep%"=="" goto 1
set ep=%ep:~0,-1%
set es=%es:~0,-1%
goto 1
:t1
echo 你的密码是:%ep%
pause


2009-1-15 19:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] [4] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: