闲来无事,写了个可修改自身密码的批处理
特点:
把批处理的密码乱序后记录在自身的第一行,增加 “安全性” 呵呵。。
输入正确密码后,可以修改密码。新密码同样会被乱序后写在第一行。
不产生临时文件,不导致文件无限扩大。 | ::246897531 | | @echo off | | ::code 随风 @bbs.bathome.net 2008-04-17 | | set /p code=<"%~0" | | set "code=%code:~2%" | | setlocal EnableDelayedExpansion | | call :lis "%code%" | | endlocal&set "code=%a%" | | set /a ci=3 | | :ccc | | cls | | echo\&echo 你还有 %ci% 次机会 | | echo\&echo 正确密码是:%code% | | echo\&set /p mm= 请输入密码: | | if /i "%mm%"=="%code%" goto ok | | set /a ci-=1 | | if %ci% equ 0 (goto cuo) else goto ccc | | :ok | | cls&echo 密码正确 | | echo\&echo 可直接输入新密码,直接按回车保留原密码 | | set /p code= | | setlocal EnableDelayedExpansion | | call :loop "%code%" | | endlocal&set "code=%b%%a%" | | echo %code% | | goto xie | | :lis 将密码还原 | | set a=!a!!code:~-1,1! | | set code=!code:~0,-1! | | if not defined code goto :eof | | set a=!a!!code:~0,1! | | set code=!code:~1! | | if defined code goto lis | | goto :eof | | :loop 将密码乱序 | | set a=!code:~0,1!!a! | | set code=!code:~1! | | if not defined code goto :eof | | set b=!b!!code:~0,1! | | set code=!code:~1! | | if not defined code goto :eof | | goto loop | | :cuo | | cls&echo\&echo 密码连续输入错误,下次再试吧。。。 | | echo\&echo 按任意键退出。。。 | | echo\&pause>nul&exit | | :xie | | for /f "delims=" %%a in ('type "%~0"') do ( | | if not defined flag ( | | set flag=a | | >"%~0" echo ::%code% | | ) else >>"%~0" echo %%a | | )COPY |
|