中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: ghost前要求输入密码 上一主题 | 下一主题
hdyue
新手上路





积分 18
发帖 8
注册 2007-6-7
状态 离线
『楼 主』:  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的代码。先谢了!

2007-6-7 23:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
0451lym
高级用户





积分 760
发帖 357
注册 2005-10-10
状态 离线
『第 2 楼』:  

GHOST支持加密备份!
所以无须在弄什么加密的要求了!

2007-6-8 01:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by hdyue at 2007-6-7 23:26:
办公室一台公用电脑,我装了XP和DOS双系统,并做了一个全自动GHOST的批处理文件。太方便了因此系统经常被人进入DOS随意GHOST还原。我想在GHOST还原前 ...

set/p a=password: 只能用于cmd,dos需用choice命令。



Windows 一键还原
http://www.yjhy.com
2007-6-8 06:14
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by 0451lym at 2007-6-8 01:21:
GHOST支持加密备份!
所以无须在弄什么加密的要求了!

两种密码所要达到的目的是有不同的。个人以为。



Windows 一键还原
http://www.yjhy.com
2007-6-8 06:15
查看资料  发短消息 网志   编辑帖子  回复  引用回复
htysm
高级用户




积分 866
发帖 415
注册 2005-12-4
状态 离线
『第 5 楼』:  

楼上说得很清楚了,用CHOICE命令也很强的。



欢迎你到批处理爱好者联盟QQ群:18023953
2007-6-8 11:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yyuunnnn
新手上路





积分 12
发帖 5
注册 2007-6-8
状态 离线
『第 6 楼』:  

现在还有几个办公室的会DOS?你不就让菜单一个只进DOS,一个进系统不就得了?

2007-6-8 20:01
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hdyue
新手上路





积分 18
发帖 8
注册 2007-6-7
状态 离线
『第 7 楼』:  问题未解决

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

哪位大虾能帮我完整解答。谢了!

2007-6-9 00:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 8 楼』:  

choice是外部命令。



Windows 一键还原
http://www.yjhy.com
2007-6-9 07:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 9 楼』:  

好像choice只能输入一个字符。不理想,输入长密码,建议用wbat。
找到了说明,可看看。
------------------------
:box输入框说明

~[$变量,长度,参数]~ 此格式表示输入框 输入的内容会被复制到~%%变量%%~

其中的~长度~和~参数~都可以被忽略

其中的~长度~表示最多能输入多少个字符 如 ~[$变量,2]~ 则只能输入2个字符

如果~长度~被忽略 如 ~[$变量 ]~ 此时的长度为方括号的大小

参数包括
U  始终显示大写字母
P  密码输入框 显示的是 ***
!  除非按ESC关闭窗口 否则必须输入不能为空

如 ~[$password,9,P!]~

表示必须要输入最多9位的密码 输入得值存到%%password%%里面

::



Windows 一键还原
http://www.yjhy.com
2007-6-9 08:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hdyue
新手上路





积分 18
发帖 8
注册 2007-6-7
状态 离线
『第 10 楼』:  

choice确实是只能输入一个字符,但可以定义在第几位,也不错。问题的关键在于用什么内部命令来实现密码输入。我分不清哪些是内部命令哪些是外部命令。我试了不止这两种密码语句,结果在纯DOS下都不执行密码语句部分。我对密码强度不要求,只要有密码就行。

哪位大虾帮帮忙。谢了!

2007-6-9 17:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 11 楼』:  

简单讲,只要有command,就能执行的命令就是内部命令,比如dir, copy 等。需要另外专门文件才可执行的,是外部命令,比如format, fdisk,attrib等。



Windows 一键还原
http://www.yjhy.com
2007-6-9 17:41
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hdyue
新手上路





积分 18
发帖 8
注册 2007-6-7
状态 离线
『第 12 楼』:  

lianjiang2004,你好!

我的问题是不是在纯DOS下无法实现?

能不能帮忙写一个?我对密码强度不要求,只要有密码就行。

2007-6-9 17:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 13 楼』:  

用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就会退出,否则.........
这是密码检验的批处理,可以修改一下变成设置密码的批处理.



Windows 一键还原
http://www.yjhy.com
2007-6-9 17:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hdyue
新手上路





积分 18
发帖 8
注册 2007-6-7
状态 离线
『第 14 楼』:  

lianjiang2004,你好!谢谢你。

你提供的这段代码我也见过,但未试过。原因是我用的代码那么简单,运行后都不行,这么复杂就更不敢试了,不过我会试一下的。谢谢。

不知道我的问题讲清楚了没有。我的意思是,在出现启动双菜单选择DOS后,运行一个批处理进行GHOST前,希望有个简单的密码,就是说不希望被人随意GHOST。

我在批处理中用过choice命令<详见7楼>,执行批处理时也是不出现密码部分,直接执行后续语句,什么原因使密码语句被跳漏过去呢?

帮帮忙。能否给个完整语句,谢了。

2007-6-9 18:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 15 楼』:  

把你写的代码贴出来。
里面放上choice的可执行文件了吗?



Windows 一键还原
http://www.yjhy.com
2007-6-9 18:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: