CODE: [Copy to clipboard]
@rem dmndso-cmw
@echo off
set /p pass=<%~nx0
set pass=%pass:~5%
call :Return %%pass%%
for /f "tokens=1" %%i in (%~nx0) do if "%%i"=="::" goto Judges
for /f "delims=" %%i in ('cd') do echo.:: %%i\%~nx0>>%~nx0
:Judges
for /f "tokens=1* delims= " %%i in (%~nx0) do set puth=%%j
for /f "delims=" %%i in ('cd') do if "%%i\%~nx0"=="%puth%" goto pass
echo 错误!不是原文件。&del /q 复件>nul 2>nul&ping /n 2 127.1>nul&goto :eof
:pass
set /a n+=1
set /a m=4-%n%
if %m% equ 0 cls&echo 对不起,因没正确输入密码,本程序将自动结束。&ping /n 3 127.1>nul&goto :eof
cls&set /p pwd=请正确输入密码,你还有%m%次机会:
if not "%pwd%"=="%password%" goto pass
set password=&set a=&set b=&set n=0&set new=1
cls&echo 密码正确,直接回车继续使用原密码,如要更改请输入新密码。
set /p new=输入新密码:
if "%new%"=="1" goto run
call :change %%new%%
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('type %~nx0') do (
set /a n+=1
if !n! equ 1 (
echo @rem %password%>%~nx0
) else (
endlocal&echo %%i>>%~nx0
)
)
:run
cls&echo 程序开始运行...
pause>nul&goto :eof
:Return
set a=%pass:~-1,1%
if not "%pass:~1%"=="" (
set b=%pass:~,1%
) else (
set b=
)
set password=%password%%a%%b%&set pass=%pass:~1,-1%
if defined pass goto Return
goto :eof
:change
set a=%new:~,1%%a%&set b=%b%%new:~1,1%&set new=%new:~2%
if defined new goto change
set password=%b%%a%
[