@echo off &title 动态密码验证
::::******************************************************************
::::得到 正确的密码的说明:
::::如果界面显示的访问 时间是 2008-12-11 星期四 21:13
::::那么正确的密码是 日+小时+分钟 即 112113 这六位数字!!!
::::******************************************************************
::::■〓■〓■〓■〓■ 程序初始化开始 ■〓■〓■〓■〓■
@mode con cols=101 lines=27
color 0a
:mum
call :xsp
call :fz
echo." ^-^ 不知道密码的话,请按 Q 键 退出本程序! ^-^
echo.
set /p name= 请输入 6位数字 访问密码:
::::判断是否退出本程序。
SET choice=%name:~0,1%
if /i "%choice%"=="Q" goto endd
::::---------------------------------
SET name=%name:~0,6%
::::开始验证密码:::::::::
goto :pass
::::通过密码验证:::::::::
:aabbcc
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::下面可以写入,只有通过密码验证,才能执行的操作命令。
::::::::::下面一些被 call 调用的过程。即子程序。
goto :eof
::::::::::::: 这里是程序运行时的第一个界面 ::::::::::::::::
:xsp
cls
SET rq=%date:~0,16%
SET sj=%time:~0,5%
set mima=%rq% %sj%
call :mima %mima%
echo.
echo.
echo. """"""""""""""""""""""""""""""""""""""""""""""""
echo. "┏━━━━━━━━━━━━━━━━━━━━━┓"
echo. "┃ \\\|/// ┃"
echo. "┃ \\ - - // ┃"
echo. "┃ ( @ @ ) ┃"
echo. "┃ ┏━━━━━━━━━oOOo-(_)-oOOo━┓ ┃"
echo. "┃ ┃ ┃ ┃"
echo. "┃ ┃ 您好! 欢迎光临! ┃ ┃"
echo. "┃ ┃ ┃ ┃"
echo. "┃ ┃ 您本次访问时间为: ┃ ┃"
echo. "┃ ┃ ┃ ┃"
echo. "┃ ┃ %mima% ┃ ┃"
echo. "┃ ┃ Oooo ┃ ┃"
echo. "┃ ┗━━━━━━━━━ oooO ━( )━┛ ┃"
echo. "┃ ( ) ) / ┃"
echo. "┃ \ ( (_/ ┃"
echo. "┃ \_) ┃"
echo. "┗━━━━━━━━━━━━━━━━━━━━━┛"
echo. """"""""""""""""""""""""""""""""""""""""""""""""
echo.
:::: pause
goto :eof
:::: 给变量赋值
:fz
set name=
set aa1=
set aa2=
set aa3=
set aa4=
set aa5=
set aa6=
goto :eof
:name
echo. %1
set pass=%1
set aa1=%pass:~0,1%
set aa2=%pass:~1,1%
set aa3=%pass:~2,1%
set aa4=%pass:~3,1%
set aa5=%pass:~4,1%
set aa6=%pass:~5,1%
echo. %aa1%-%aa2%-%aa3%-%aa4%-%aa5%-%aa6%
goto :eof
::::: 生成动态密码 ::::::::::::::::::::::::::
:mima
::::echo. %1 %2 %3
set pass1=%1
set pass2=%2
set pass3=%3
set aa1=%pass1:~8,1%
set aa2=%pass1:~9,1%
set aa3=%pass3:~0,1%
set aa4=%pass3:~1,1%
set aa5=%pass3:~3,1%
set aa6=%pass3:~4,1%
::::echo. %aa1%-%aa2%-%aa3%-%aa4%-%aa5%-%aa6%
set pass=%aa1%%aa2%%aa3%%aa4%%aa5%%aa6%
::::echo. %pass%
goto :eof
::::::验证密码::::::::::::::::::::::::::::::::
:pass
:::: =====用模拟进度条 显示密码验证状态=====
set a1=
set b1=
set c1=
::::■〓■〓■〓■〓■ 开启变量延迟 ■〓■〓■〓■〓■
setlocal enabledelayedexpansion
:::------------------------------------------------------
::::这里循环 100次 调用子程序:sub 的效果是 输出100个 > 形成>>>>>>>>>>
for /l %%n in (1 1 100) do call :sub
::::■〓■〓■〓■〓■ 关闭变量延迟 ■〓■〓■〓■〓■
setlocal DISABLEDELAYEDEXPANSION
:::: =======================================
IF NOT "%pass%"=="%name%" goto :cw
call :zq
goto :aabbcc
goto :eof
::::::密码验证结果错误的显示信息::::::::::::::
:cw
echo. 很遗憾,您输入的访问密码无效,请重新输入:
pause
goto :mum
goto :eof
::::::密码验证结果正确的显示信息::::::::::::::
:zq
echo." ^-^ 恭喜你! 密码通过验证!
pause
goto :eof
rem ■〓■〓■下面是模拟进度条的子程序■〓■〓■
:sub
rem --------------------------------------------
rem set /a c1= %c1% + 1 命令简写如下:
set /a c1+=1
rem --------------------------------------------
set /a a1=%c1%
::::清屏,并输出20个空行。
cls && for /l %%n in (1 1 20) do echo.
echo.
echo 请耐心等待,正在验证密码,已完成 !a1! %%
rem 变量b1启用变量延迟效果后,把变量b1原来的值加上>符号后,在赋值给变量b1
set b1=!b1!^>&& echo !b1!
ping /n 1 127.0.0.1>nul
goto :eof
试用 本批处理 下载地址 http://upload.cn-dos.net/img/1185.rarhttp://upload.cn-dos.net/img/1185.rar
::::
[ Last edited by lj249911023 on 2008-12-12 at 08:57 ]



