|
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
状态 离线
|
|
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
状态 离线
|
|
2007-6-9 18:31 |
|