![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-19 01:19 |
共 47,814 主题排行 / 349,908 发帖 / 今日 1 篇 / 48,259 会员排行 |
| DOS疑难解答 & 问题讨论 (解答室) » ghost前要求输入密码 |
| 可打印版本 3,263 / 22 |
| 第1楼 hdyue | 发表于 2007-06-07 23:26 |
| 新手上路 发帖 8 积分 18 | |
|
ghost前要求输入密码 办公室一台公用电脑,我装了XP和DOS双系统,并做了一个全自动GHOST的批处理文件。太方便了因此系统经常被人进入DOS随意GHOST还原。我想在GHOST还原前要求输入密码<能糊一些人>。批处理代码如下:
@echo off set a= set/p a=password: if /i "%a%"=="123" goto aa exit ::以下部分代替GHOST带参数命令 :aa echo 你好 pause 以上语句在WINDOWS下执行的很好。可在DOS下却不执行密码输入部分。请大虾们帮忙原因何在?是不是要先加载什么才能在DOS下执行密码输入部分? 请求一个需要密码才能执行GHOST的代码。先谢了! |
|
| 第2楼 0451lym | 发表于 2007-06-08 01:21 |
| 高级用户 发帖 357 积分 760 | |
|
GHOST支持加密备份!
所以无须在弄什么加密的要求了! |
|
| 第3楼 lianjiang2004 | 发表于 2007-06-08 06:14 |
| 金牌会员 发帖 1,884 积分 3,946 | |
Originally posted by hdyue at 2007-6-7 23:26: set/p a=password: 只能用于cmd,dos需用choice命令。 |
|
| 第4楼 lianjiang2004 | 发表于 2007-06-08 06:15 |
| 金牌会员 发帖 1,884 积分 3,946 | |
Originally posted by 0451lym at 2007-6-8 01:21: 两种密码所要达到的目的是有不同的。个人以为。 |
|
| 第5楼 htysm | 发表于 2007-06-08 11:23 |
| 高级用户 发帖 415 积分 866 | |
|
楼上说得很清楚了,用CHOICE命令也很强的。
|
|
| 第6楼 yyuunnnn | 发表于 2007-06-08 20:01 |
| 新手上路 发帖 5 积分 12 | |
|
现在还有几个办公室的会DOS?你不就让菜单一个只进DOS,一个进系统不就得了?
|
|
| 第7楼 hdyue | 发表于 2007-06-09 00:42 |
| 新手上路 发帖 8 积分 18 | |
|
问题未解决 2楼的话我明白,但GHOST的密码是固定的。能更改密码吗?告诉我在哪里更改。
3楼的话我不大明白。因为我也试过以下这段代码。效果也是不执行密码部分,直接执行:aa部分。 @echo off set choice= set /p choice= password: IF NOT "%Choice%"=="" SET Choice=%Choice:~0,1% if /i "%choice%"=="h" goto aa exit ::以下部分代替GHOST带参数命令 :aa echo 你好 pause 哪位大虾能帮我完整解答。谢了! |
|
| 第8楼 lianjiang2004 | 发表于 2007-06-09 07:58 |
| 金牌会员 发帖 1,884 积分 3,946 | |
|
choice是外部命令。
|
|
| 第9楼 lianjiang2004 | 发表于 2007-06-09 08:22 |
| 金牌会员 发帖 1,884 积分 3,946 | |
|
好像choice只能输入一个字符。不理想,输入长密码,建议用wbat。
找到了说明,可看看。 ------------------------ :box输入框说明 ~[$变量,长度,参数]~ 此格式表示输入框 输入的内容会被复制到~%%变量%%~ 其中的~长度~和~参数~都可以被忽略 其中的~长度~表示最多能输入多少个字符 如 ~[$变量,2]~ 则只能输入2个字符 如果~长度~被忽略 如 ~[$变量 ]~ 此时的长度为方括号的大小 参数包括 U 始终显示大写字母 P 密码输入框 显示的是 *** ! 除非按ESC关闭窗口 否则必须输入不能为空 如 ~[$password,9,P!]~ 表示必须要输入最多9位的密码 输入得值存到%%password%%里面 :: |
|
| 第10楼 hdyue | 发表于 2007-06-09 17:37 |
| 新手上路 发帖 8 积分 18 | |
|
choice确实是只能输入一个字符,但可以定义在第几位,也不错。问题的关键在于用什么内部命令来实现密码输入。我分不清哪些是内部命令哪些是外部命令。我试了不止这两种密码语句,结果在纯DOS下都不执行密码语句部分。我对密码强度不要求,只要有密码就行。
哪位大虾帮帮忙。谢了! |
|
| 第11楼 lianjiang2004 | 发表于 2007-06-09 17:41 |
| 金牌会员 发帖 1,884 积分 3,946 | |
|
简单讲,只要有command,就能执行的命令就是内部命令,比如dir, copy 等。需要另外专门文件才可执行的,是外部命令,比如format, fdisk,attrib等。
|
|
| 第12楼 hdyue | 发表于 2007-06-09 17:44 |
| 新手上路 发帖 8 积分 18 | |
|
lianjiang2004,你好!
我的问题是不是在纯DOS下无法实现? 能不能帮忙写一个?我对密码强度不要求,只要有密码就行。 |
|
| 第13楼 lianjiang2004 | 发表于 2007-06-09 17:50 |
| 金牌会员 发帖 1,884 积分 3,946 | |
|
用choice就是纯dos下的。
刚刚查了个帖子,也是用choice的,不过能实现验证多位密码。供参考。 ----------------------------------------- 将以下存成一个批处理文件.再跟据需要修改即可. @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就会退出,否则......... 这是密码检验的批处理,可以修改一下变成设置密码的批处理. |
|
| 第14楼 hdyue | 发表于 2007-06-09 18:06 |
| 新手上路 发帖 8 积分 18 | |
|
lianjiang2004,你好!谢谢你。
你提供的这段代码我也见过,但未试过。原因是我用的代码那么简单,运行后都不行,这么复杂就更不敢试了,不过我会试一下的。谢谢。 不知道我的问题讲清楚了没有。我的意思是,在出现启动双菜单选择DOS后,运行一个批处理进行GHOST前,希望有个简单的密码,就是说不希望被人随意GHOST。 我在批处理中用过choice命令<详见7楼>,执行批处理时也是不出现密码部分,直接执行后续语句,什么原因使密码语句被跳漏过去呢? 帮帮忙。能否给个完整语句,谢了。 |
|
| 第15楼 lianjiang2004 | 发表于 2007-06-09 18:31 |
| 金牌会员 发帖 1,884 积分 3,946 | |
|
把你写的代码贴出来。
里面放上choice的可执行文件了吗? |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |