(注:此贴转自DOS之家的周文伟朋友,希望这里的高手能解决“该程序不能用bat2com制作成COM程序,制作后不支持%,不知哪位有什么解决办法?”这个问题)
可自定义密码的密码程序(批处理)
@echo off
rem ### 可自定义密码的密码程序 ###
rem
rem 作者:周文伟 zww3008@sina.com
rem
rem 作用:1.可加载在WINDOWS 98中的Autoexec.bat中作为另类开机密码(但需将提示信息改为英文,开机时启动的Autoexec.bat是不支持中文显示的),可唬一下一些菜鸟级的用户。
rem 2.可加载到你的批处理程序前,作为你的BAT程序的“壳”。
rem
rem 说明:1.该程序不能用bat2com制作成COM程序,制作后不支持%,不知哪位有什么解决办法?
rem 3.密码为4位长度的数字,如需增长,可增加相应程序段即可。
rem 4.程序采用常用的DOS命令,没有附加工具,可在各种windows版本中运行,兼容性好。
rem 2.程序中choice命令下的if errorlevel项有严格的排序,不能颠倒,读者自体味。
rem 3.哪位有更好的建议,欢迎交流学习:周文伟zww3008@sina.com
rem
rem ------程序给定的初始密码 3210-------------
rem 密码为 4 位长度的数字,初始为3210,用户可更改。
set key1=3>nul
set key2=2>nul
set key3=1>nul
set key4=10>nul
rem --------调用用户已设定的密码---------------
if exist c:\windows\MSAPPS\keyfile.bat call c:\windows\MsApps\keyfile.bat>nul
rem -----初始化设置-------
if %key1%==1 set key1d=2>nul
if %key1%==2 set key1d=3>nul
if %key1%==3 set key1d=4>nul
if %key1%==4 set key1d=5>nul
if %key1%==5 set key1d=6>nul
if %key1%==6 set key1d=7>nul
if %key1%==7 set key1d=8>nul
if %key1%==8 set key1d=9>nul
if %key1%==9 set key1d=10>nul
if %key1%==10 set key1d=11>nul
if %key2%==1 set key2d=2>nul
if %key2%==2 set key2d=3>nul
if %key2%==3 set key2d=4>nul
if %key2%==4 set key2d=5>nul
if %key2%==5 set key2d=6>nul
if %key2%==6 set key2d=7>nul
if %key2%==7 set key2d=8>nul
if %key2%==8 set key2d=9>nul
if %key2%==9 set key2d=10>nul
if %key2%==10 set key2d=11>nul
if %key3%==1 set key3d=2>nul
if %key3%==2 set key3d=3>nul
if %key3%==3 set key3d=4>nul
if %key3%==4 set key3d=5>nul
if %key3%==5 set key3d=6>nul
if %key3%==6 set key3d=7>nul
if %key3%==7 set key3d=8>nul
if %key3%==8 set key3d=9>nul
if %key3%==9 set key3d=10>nul
if %key3%==10 set key3d=11>nul
if %key4%==1 set key4d=2>nul
if %key4%==2 set key4d=3>nul
if %key4%==3 set key4d=4>nul
if %key4%==4 set key4d=5>nul
if %key4%==5 set key4d=6>nul
if %key4%==6 set key4d=7>nul
if %key4%==7 set key4d=8>nul
if %key4%==8 set key4d=9>nul
if %key4%==9 set key4d=10>nul
if %key4%==10 set key4d=11>nul
set startinfo=(修改密码按X键)
set chkinfo=
set opt=end
goto 1p
:needchk
set startinfo=
set chkinfo=4位旧
set opt=ch1
:1p
cls
echo.
echo.
choice /c:1234567890nX /n 请输入%chkinfo%密码%startinfo%:
if errorlevel 12 goto needchk
if errorlevel %key1d% goto err1
if errorlevel %key1% goto 2p
goto err1
:2p
cls
echo.
echo.
choice /c:1234567890n /n 请输入%chkinfo%密码:*
if errorlevel %key2d% goto err2
if errorlevel %key2% goto 3p
goto err2
:3p
cls
echo.
echo.
choice /c:1234567890n /n 请输入%chkinfo%密码:**
if errorlevel %key3d% goto err3
if errorlevel %key3% goto 4p
goto err3
:4p
cls
echo.
echo.
choice /c:1234567890n /n 请输入%chkinfo%密码:***
if errorlevel %key4d% goto err4
if errorlevel %key4% goto ok
goto err4
:err1
cls
echo.
echo.
choice /c:1234567890n /n 请输入%chkinfo%密码:*
:err2
cls
echo.
echo.
choice /c:1234567890n /n 请输入%chkinfo%密码:**
:err3
cls
echo.
echo.
choice /c:1234567890n /n 请输入%chkinfo%密码:***
:err4
cls
echo.
echo.
echo 请输入%chkinfo%密码:****
echo.
echo key error!!!
echo.
pause
goto 1p
k
cls
echo.
echo.
echo 请输入%chkinfo%密码:****
echo.
echo ---= OK! OK! OK! OK! =--
echo.
pause
goto %opt%
:ch1
cls
echo.
echo.
echo 请输入%chkinfo%密码:****
echo.
echo.
choice /c:1234567890x /n 请输入4位新密码(按X重新输入):
if errorlevel 1 set key1=1
if errorlevel 2 set key1=2
if errorlevel 3 set key1=3
if errorlevel 4 set key1=4
if errorlevel 5 set key1=5
if errorlevel 6 set key1=6
if errorlevel 7 set key1=7
if errorlevel 8 set key1=8
if errorlevel 9 set key1=9
if errorlevel 10 set key1=0
if errorlevel 11 goto ch1
:ch2
cls
echo.
echo.
echo 请输入%chkinfo%密码:****
echo.
echo.
choice /c:1234567890x /n 请输入4位新密码(按X重新输入):%key1%
if errorlevel 1 set key2=1
if errorlevel 2 set key2=2
if errorlevel 3 set key2=3
if errorlevel 4 set key2=4
if errorlevel 5 set key2=5
if errorlevel 6 set key2=6
if errorlevel 7 set key2=7
if errorlevel 8 set key2=8
if errorlevel 9 set key2=9
if errorlevel 10 set key2=0
if errorlevel 11 goto ch1
:ch3
cls
echo.
echo.
echo 请输入%chkinfo%密码:****
echo.
echo.
choice /c:1234567890x /n 请输入4位新密码(按X重新输入):%key1%%key2%
if errorlevel 1 set key3=1
if errorlevel 2 set key3=2
if errorlevel 3 set key3=3
if errorlevel 4 set key3=4
if errorlevel 5 set key3=5
if errorlevel 6 set key3=6
if errorlevel 7 set key3=7
if errorlevel 8 set key3=8
if errorlevel 9 set key3=9
if errorlevel 10 set key3=0
if errorlevel 11 goto ch1
:ch4
cls
echo.
echo.
echo 请输入%chkinfo%密码:****
echo.
echo.
choice /c:1234567890x /n 请输入4位新密码(按X重新输入):%key1%%key2%%key3%
if errorlevel 1 set key4=1
if errorlevel 2 set key4=2
if errorlevel 3 set key4=3
if errorlevel 4 set key4=4
if errorlevel 5 set key4=5
if errorlevel 6 set key4=6
if errorlevel 7 set key4=7
if errorlevel 8 set key4=8
if errorlevel 9 set key4=9
if errorlevel 10 set key4=0
if errorlevel 11 goto ch1
cls
echo.
echo.
echo 请输入%chkinfo%密码:****
echo.
echo.
echo 请输入4位新密码(按X重新输入):%key1%%key2%%key3%%key4%
echo.
if not exist c:\windows\nul md c:\windows
if not exist c:\windows\msapps\nul md c:\windows\msapps
echo @echo off>c:\windows\msapps\keyfile.bat
if %key1%==0 set key1=10
if %key2%==0 set key2=10
if %key3%==0 set key3=10
if %key4%==0 set key4=10
echo set key1=%key1%>>c:\windows\msapps\keyfile.bat
echo set key2=%key2%>>c:\windows\msapps\keyfile.bat
echo set key3=%key3%>>c:\windows\msapps\keyfile.bat
echo set key4=%key4%>>c:\windows\msapps\keyfile.bat
echo.
echo OK! 密码修改成功!请记住新密码。
echo.
echo.
echo 按任意键继续......
pause >nul
:end
cls
可自定义密码的密码程序(批处理)
@echo off
rem ### 可自定义密码的密码程序 ###
rem
rem 作者:周文伟 zww3008@sina.com
rem
rem 作用:1.可加载在WINDOWS 98中的Autoexec.bat中作为另类开机密码(但需将提示信息改为英文,开机时启动的Autoexec.bat是不支持中文显示的),可唬一下一些菜鸟级的用户。
rem 2.可加载到你的批处理程序前,作为你的BAT程序的“壳”。
rem
rem 说明:1.该程序不能用bat2com制作成COM程序,制作后不支持%,不知哪位有什么解决办法?
rem 3.密码为4位长度的数字,如需增长,可增加相应程序段即可。
rem 4.程序采用常用的DOS命令,没有附加工具,可在各种windows版本中运行,兼容性好。
rem 2.程序中choice命令下的if errorlevel项有严格的排序,不能颠倒,读者自体味。
rem 3.哪位有更好的建议,欢迎交流学习:周文伟zww3008@sina.com
rem
rem ------程序给定的初始密码 3210-------------
rem 密码为 4 位长度的数字,初始为3210,用户可更改。
set key1=3>nul
set key2=2>nul
set key3=1>nul
set key4=10>nul
rem --------调用用户已设定的密码---------------
if exist c:\windows\MSAPPS\keyfile.bat call c:\windows\MsApps\keyfile.bat>nul
rem -----初始化设置-------
if %key1%==1 set key1d=2>nul
if %key1%==2 set key1d=3>nul
if %key1%==3 set key1d=4>nul
if %key1%==4 set key1d=5>nul
if %key1%==5 set key1d=6>nul
if %key1%==6 set key1d=7>nul
if %key1%==7 set key1d=8>nul
if %key1%==8 set key1d=9>nul
if %key1%==9 set key1d=10>nul
if %key1%==10 set key1d=11>nul
if %key2%==1 set key2d=2>nul
if %key2%==2 set key2d=3>nul
if %key2%==3 set key2d=4>nul
if %key2%==4 set key2d=5>nul
if %key2%==5 set key2d=6>nul
if %key2%==6 set key2d=7>nul
if %key2%==7 set key2d=8>nul
if %key2%==8 set key2d=9>nul
if %key2%==9 set key2d=10>nul
if %key2%==10 set key2d=11>nul
if %key3%==1 set key3d=2>nul
if %key3%==2 set key3d=3>nul
if %key3%==3 set key3d=4>nul
if %key3%==4 set key3d=5>nul
if %key3%==5 set key3d=6>nul
if %key3%==6 set key3d=7>nul
if %key3%==7 set key3d=8>nul
if %key3%==8 set key3d=9>nul
if %key3%==9 set key3d=10>nul
if %key3%==10 set key3d=11>nul
if %key4%==1 set key4d=2>nul
if %key4%==2 set key4d=3>nul
if %key4%==3 set key4d=4>nul
if %key4%==4 set key4d=5>nul
if %key4%==5 set key4d=6>nul
if %key4%==6 set key4d=7>nul
if %key4%==7 set key4d=8>nul
if %key4%==8 set key4d=9>nul
if %key4%==9 set key4d=10>nul
if %key4%==10 set key4d=11>nul
set startinfo=(修改密码按X键)
set chkinfo=
set opt=end
goto 1p
:needchk
set startinfo=
set chkinfo=4位旧
set opt=ch1
:1p
cls
echo.
echo.
choice /c:1234567890nX /n 请输入%chkinfo%密码%startinfo%:
if errorlevel 12 goto needchk
if errorlevel %key1d% goto err1
if errorlevel %key1% goto 2p
goto err1
:2p
cls
echo.
echo.
choice /c:1234567890n /n 请输入%chkinfo%密码:*
if errorlevel %key2d% goto err2
if errorlevel %key2% goto 3p
goto err2
:3p
cls
echo.
echo.
choice /c:1234567890n /n 请输入%chkinfo%密码:**
if errorlevel %key3d% goto err3
if errorlevel %key3% goto 4p
goto err3
:4p
cls
echo.
echo.
choice /c:1234567890n /n 请输入%chkinfo%密码:***
if errorlevel %key4d% goto err4
if errorlevel %key4% goto ok
goto err4
:err1
cls
echo.
echo.
choice /c:1234567890n /n 请输入%chkinfo%密码:*
:err2
cls
echo.
echo.
choice /c:1234567890n /n 请输入%chkinfo%密码:**
:err3
cls
echo.
echo.
choice /c:1234567890n /n 请输入%chkinfo%密码:***
:err4
cls
echo.
echo.
echo 请输入%chkinfo%密码:****
echo.
echo key error!!!
echo.
pause
goto 1p
kcls
echo.
echo.
echo 请输入%chkinfo%密码:****
echo.
echo ---= OK! OK! OK! OK! =--
echo.
pause
goto %opt%
:ch1
cls
echo.
echo.
echo 请输入%chkinfo%密码:****
echo.
echo.
choice /c:1234567890x /n 请输入4位新密码(按X重新输入):
if errorlevel 1 set key1=1
if errorlevel 2 set key1=2
if errorlevel 3 set key1=3
if errorlevel 4 set key1=4
if errorlevel 5 set key1=5
if errorlevel 6 set key1=6
if errorlevel 7 set key1=7
if errorlevel 8 set key1=8
if errorlevel 9 set key1=9
if errorlevel 10 set key1=0
if errorlevel 11 goto ch1
:ch2
cls
echo.
echo.
echo 请输入%chkinfo%密码:****
echo.
echo.
choice /c:1234567890x /n 请输入4位新密码(按X重新输入):%key1%
if errorlevel 1 set key2=1
if errorlevel 2 set key2=2
if errorlevel 3 set key2=3
if errorlevel 4 set key2=4
if errorlevel 5 set key2=5
if errorlevel 6 set key2=6
if errorlevel 7 set key2=7
if errorlevel 8 set key2=8
if errorlevel 9 set key2=9
if errorlevel 10 set key2=0
if errorlevel 11 goto ch1
:ch3
cls
echo.
echo.
echo 请输入%chkinfo%密码:****
echo.
echo.
choice /c:1234567890x /n 请输入4位新密码(按X重新输入):%key1%%key2%
if errorlevel 1 set key3=1
if errorlevel 2 set key3=2
if errorlevel 3 set key3=3
if errorlevel 4 set key3=4
if errorlevel 5 set key3=5
if errorlevel 6 set key3=6
if errorlevel 7 set key3=7
if errorlevel 8 set key3=8
if errorlevel 9 set key3=9
if errorlevel 10 set key3=0
if errorlevel 11 goto ch1
:ch4
cls
echo.
echo.
echo 请输入%chkinfo%密码:****
echo.
echo.
choice /c:1234567890x /n 请输入4位新密码(按X重新输入):%key1%%key2%%key3%
if errorlevel 1 set key4=1
if errorlevel 2 set key4=2
if errorlevel 3 set key4=3
if errorlevel 4 set key4=4
if errorlevel 5 set key4=5
if errorlevel 6 set key4=6
if errorlevel 7 set key4=7
if errorlevel 8 set key4=8
if errorlevel 9 set key4=9
if errorlevel 10 set key4=0
if errorlevel 11 goto ch1
cls
echo.
echo.
echo 请输入%chkinfo%密码:****
echo.
echo.
echo 请输入4位新密码(按X重新输入):%key1%%key2%%key3%%key4%
echo.
if not exist c:\windows\nul md c:\windows
if not exist c:\windows\msapps\nul md c:\windows\msapps
echo @echo off>c:\windows\msapps\keyfile.bat
if %key1%==0 set key1=10
if %key2%==0 set key2=10
if %key3%==0 set key3=10
if %key4%==0 set key4=10
echo set key1=%key1%>>c:\windows\msapps\keyfile.bat
echo set key2=%key2%>>c:\windows\msapps\keyfile.bat
echo set key3=%key3%>>c:\windows\msapps\keyfile.bat
echo set key4=%key4%>>c:\windows\msapps\keyfile.bat
echo.
echo OK! 密码修改成功!请记住新密码。
echo.
echo.
echo 按任意键继续......
pause >nul
:end
cls






