中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » (问题尚未解决) 在批处理中是通过怎样的命令实现人机对话
<<   [1] [2]  >>   >
作者:
标题: (问题尚未解决) 在批处理中是通过怎样的命令实现人机对话 上一主题 | 下一主题
mtx
初级用户




积分 187
发帖 21
注册 2005-1-22
状态 离线
『楼 主』:  (问题尚未解决) 在批处理中是通过怎样的命令实现人机对话

dos下有类似read a的命令吗?就是为a变量输入一个值,应该有类似的命令吧? “CHOICE”命令只能选择,输不了变量,如果在光盘的批处理程序里设个密码,用“CHOICE”命令恐怕弄不了.

[此贴子已经被作者于2005-1-30 10:44:06编辑过]



2005-1-29 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
JonePeng
金牌会员

D◎$ Fαп


积分 4562
发帖 1883
注册 2004-1-19
来自 广东广州
状态 离线
『第 2 楼』:  

你的“read a”应该是BASIC的语句吧。DOS里也有类似功能的命令:SET。如:SET A=123。注意在DOS下用SET定义的变量都是字符型。当要引用变量时,用两个百分号包住变量名,如:echo %a%将显示A的值。




----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
2005-1-29 00:00
查看资料  发送邮件  发短消息  网志  OICQ (373343541)  编辑帖子  回复  引用回复
Denver
初级用户




积分 123
发帖 10
注册 2005-1-26
状态 离线
『第 3 楼』:  

set /p 能达到您所说的效果。 不过是在windows 2003的命令行确定有效,纯dos下未知。

[此贴子已经被作者于2005-2-1 18:49:09编辑过]



2005-2-1 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
mtx
初级用户




积分 187
发帖 21
注册 2005-1-22
状态 离线
『第 4 楼』:  

我用for 命令\set 命令\choice命令可以实现在批处理里设密码,但缺点是输入密码时每一个字母都显示一行,同时必须在启动映象里加上choice.com 命令.不知道那位老手能找到更好的方法 我的主要思路如下: 通过for %%f in (1 2 3 4 .....N) 调用 批处理 www 注:N为密码位数 www.bat的内容: echo off choice /c:abcdefghijklmnopqrstuvwxyz /N if errorlevel 26 goto next26 if errorlevel 25 goto next25 if errorlevel 24 goto next24 if errorlevel 23 goto next23 if errorlevel 22 goto next22 if errorlevel 21 goto next21 if errorlevel 20 goto next20 if errorlevel 19 goto next19 if errorlevel 18 goto next18 if errorlevel 17 goto next17 if errorlevel 16 goto next16 if errorlevel 15 goto next15 if errorlevel 14 goto next14 if errorlevel 13 goto next13 if errorlevel 12 goto next12 if errorlevel 11 goto next11 if errorlevel 10 goto next10 if errorlevel 9 goto next9 if errorlevel 8 goto next8 if errorlevel 7 goto next7 if errorlevel 6 goto next6 if errorlevel 5 goto next5 if errorlevel 4 goto next4 if errorlevel 3 goto next3 if errorlevel 2 goto next2 if errorlevel 1 goto next1 :next26 set readone=z goto allnext :next25 set readone=y goto allnext :next24 set readone=x goto allnext :next23 set readone=w goto allnext :next22 set readone=v goto allnext :next21 set readone=u goto allnext :next20 set readone=t goto allnext :next19 set readone=s goto allnext :next18 set readone=r goto allnext :next17 set readone=q goto allnext :next16 set readone=p goto allnext :next15 set readone=o goto allnext :next14 set readone=n goto allnext :next13 set readone=m goto allnext :next12 set readone=l goto allnext :next11 set readone=k goto allnext :next10 set readone=j goto allnext :next9 set readone=i goto allnext :next8 set readone=h goto allnext :next7 set readone=g goto allnext :next6 set readone=f goto allnext :next5 set readone=e goto allnext :next4 set readone=d goto allnext :next3 set readone=c goto allnext :next2 set readone=b goto allnext :next1 set readone=a :allnext set userpw=%userpw%%readone% 程序大概是这样,可以实现目的,但很令人不爽,密码不是一步输完的.不知道那位有好方法?


2005-2-1 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
Denver
初级用户




积分 123
发帖 10
注册 2005-1-26
状态 离线
『第 5 楼』:  

@echo off :set_password set /p password= set userpw=%userpw%%password% goto set_password


2005-2-1 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
shella
初级用户




积分 187
发帖 31
注册 2004-8-30
状态 离线
『第 6 楼』:  

用 wbat 即可假设你的这个批处理文件名是 password.bat需要如下命令call w.bat box @password.bat:ddddd此处写其他代码,输入的内容已存入变量%password%:ddddd请输入密码[$password,9,P]::此方法的缺陷 需要两个文件 wbat 和 w.bat 另外需要放入虚拟内存盘中 因为有文件写入操作


2005-2-2 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
mtx
初级用户




积分 187
发帖 21
注册 2005-1-22
状态 离线
『第 7 楼』:  

以下是引用shella在2005-2-2 1:24:58的发言: 用 wbat 即可 假设你的这个批处理文件名是 password.bat 需要如下命令 call w.bat box @password.bat:ddddd 此处写其他代码,输入的内容已存入变量%password% :ddddd 请输入密码 [$password,9,P] :: 此方法的缺陷 需要两个文件 wbat 和 w.bat 另外需要放入虚拟内存盘中 因为有文件写入操作
能详细的讲一下wbat 和 w.bat的用法吗?wbat 和 w.bat 是在怎样的环境下用的呢?


2005-2-3 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
shella
初级用户




积分 187
发帖 31
注册 2004-8-30
状态 离线
『第 8 楼』:  

wbat 是一个dos下的对话框制作软件 (不能用于 2k/XP 至于98能不能我不知道)w.bat 是 wbat的一个高级用法 用于把输入的内容赋值给变量使用参数可以看看我的帖子http://dos.e-stone.cn/dosbbs/dispbbs.asp?boardID=12&ID=14979&page=1


2005-2-3 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
mtx
初级用户




积分 187
发帖 21
注册 2005-1-22
状态 离线
『第 9 楼』:  

以下是引用shella在2005-2-3 20:23:27的发言: wbat 是一个dos下的对话框制作软件 (不能用于 2k/XP 至于98能不能我不知道) w.bat 是 wbat的一个高级用法 用于把输入的内容赋值给变量 使用参数可以看看我的帖子 http://dos.e-stone.cn/dosbbs/dispbbs.asp?boardID=12&ID=14979&page=1
请问wbat 如何下载,能用于制作启动盘吗?


2005-2-5 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
Denver
初级用户




积分 123
发帖 10
注册 2005-1-26
状态 离线
『第 10 楼』:  

我的批处理不对么? 又不需要任何外部命令。


2005-2-6 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
shella
初级用户




积分 187
发帖 31
注册 2004-8-30
状态 离线
『第 11 楼』:  

http://dos.e-stone.cn/dosbbs/dispbbs.asp?boardid=12&id=14979 在第一楼帖子的最后面 可以用于启动盘的 不过注意 如果要使用高级方式 就要把这些文件拷到虚拟内存盘运行 因为需要进行写盘操作


2005-2-7 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
chenhui530
高级用户





积分 772
发帖 273
注册 2004-10-23
状态 离线
『第 12 楼』:  

可以在AUTOEXEC。BAT里编辑然后调用WBAT可以实现密码访问 但是缺点是只安全性还是不高。一但别人用编辑软件打开一开AUTOEXEC。BAT就明白了




http://www.msfans.net/bbs/
2005-2-15 00:00
查看资料  发送邮件  发短消息  网志  OICQ (77740821)  编辑帖子  回复  引用回复
shella
初级用户




积分 187
发帖 31
注册 2004-8-30
状态 离线
『第 13 楼』:  

用 bat2com把另外一个保存密码处理的bat转成com文件然后在 autoexec.bat 里面调用


2005-2-16 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
chenall
银牌会员




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

将以下存成一个批处理文件.再跟据需要修改即可. @echo off :: 设置初使密码只能使用小写字母和数字 set pass=chenallqq368178720 :: 输入密码并验证 :pass cls echo. echo. echo. Please input your password! echo. echo. Password:%xxx% choice /c:abcdefghijklmnopqrstuvwxyz1234567890 /N if errorlevel 1 set chk=a if errorlevel 2 set chk=b if errorlevel 3 set chk=c if errorlevel 4 set chk=d if errorlevel 5 set chk=e if errorlevel 6 set chk=f if errorlevel 7 set chk=g if errorlevel 8 set chk=h if errorlevel 9 set chk=i if errorlevel 10 set chk=j if errorlevel 11 set chk=k if errorlevel 12 set chk=l if errorlevel 13 set chk=m if errorlevel 14 set chk=n if errorlevel 15 set chk=o if errorlevel 16 set chk=p if errorlevel 17 set chk=q if errorlevel 18 set chk=r if errorlevel 19 set chk=s if errorlevel 20 set chk=t if errorlevel 21 set chk=u if errorlevel 22 set chk=v if errorlevel 23 set chk=w if errorlevel 24 set chk=x if errorlevel 25 set chk=y if errorlevel 26 set chk=z if errorlevel 27 set chk=1 if errorlevel 28 set chk=2 if errorlevel 29 set chk=3 if errorlevel 30 set chk=4 if errorlevel 31 set chk=5 if errorlevel 32 set chk=6 if errorlevel 33 set chk=7 if errorlevel 34 set chk=8 if errorlevel 35 set chk=9 if errorlevel 36 set chk=0 set input=%input%%chk% set xxx=%xxx%* :: 密码检验,如果正确则退出 if #%pass%==#%input% goto end goto pass :end 运行后如果依次输入了chenallqq368178720就会退出,否则......... 这是密码检验的批处理,可以修改一下变成设置密码的批处理.

[此贴子已经被作者于2005-2-24 15:07:05编辑过]





QQ:366840202 chenall.net
2005-2-24 00:00
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (366840202)  编辑帖子  回复  引用回复
chenall
银牌会员




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

以下是引用Denver在2005-2-6 0:03:34的发言: 我的批处理不对么? 又不需要任何外部命令。
这没命令没有什么不对,只是这个只能在WINDOWS 2000以上的系统中使用.




QQ:366840202 chenall.net
2005-2-24 00:00
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (366840202)  编辑帖子  回复  引用回复
<<   [1] [2]  >>   >
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: