你的“read a”应该是BASIC的语句吧。DOS里也有类似功能的命令:SET。如:SET A=123。注意在DOS下用SET定义的变量都是字符型。当要引用变量时,用两个百分号包住变量名,如:echo %a%将显示A的值。
我用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%
程序大概是这样,可以实现目的,但很令人不爽,密码不是一步输完的.不知道那位有好方法?
用 wbat 即可假设你的这个批处理文件名是 password.bat需要如下命令call w.bat box @password.bat:ddddd此处写其他代码,输入的内容已存入变量%password%:ddddd请输入密码::此方法的缺陷 需要两个文件 wbat 和 w.bat 另外需要放入虚拟内存盘中 因为有文件写入操作
wbat 是一个dos下的对话框制作软件 (不能用于 2k/XP 至于98能不能我不知道)w.bat 是 wbat的一个高级用法 用于把输入的内容赋值给变量使用参数可以看看我的帖子http://dos.e-stone.cn/dosbbs/dispbbs.asp?boardID=12&ID=14979&page=1
将以下存成一个批处理文件.再跟据需要修改即可.
@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就会退出,否则.........
这是密码检验的批处理,可以修改一下变成设置密码的批处理.