- @echo off
-
- :load
- rem 读取
- echo 请稍等,正在读取系统信息,便于您确认是否进行重置
- rem slmgr.vbs /dli
- cls
- if not exist %windir%\retime.ini (echo 11>%windir%\retime.ini)
- set /p rest=nul
- goto if
-
-
- :if
- rem 判断是否需要写注册表
- cls
- if %rest% GTR 8 goto a
- if %rest% LEQ 8 goto b
-
-
- :a
- rem 直接执行命令重置
- rem cscript %windir%\system32\slmgr.vbs -rearm
- if %ERRORLEVEL% EQU 1 goto error
- echo 直接执行命令重置通过DEBUG
- pause>nul
- goto write
-
-
- :b
- rem 写注册表
- rem echo Windows Registry Editor Version 5.00>rearm.reg
- rem echo.>>rearm.reg
- rem echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform]>>rearm.reg
- rem echo "skiprearm"=dword:00000001>>rearm.reg
- rem regedit /s rearm.reg
- rem del /f /q rearm.reg
- if %ERRORLEVEL% EQU 1 goto error
- echo 写注册表通过DEBUG
- pause>nul
- goto a
-
-
- :c
- cls
- echo.
- echo 重置 Windows 7 试用期至30天
- echo.
- echo 已无法继续重置
- echo.
- echo [现在退出] 请按任意键
- echo [继续试用] 请重装系统
- pause>nul
- exit
-
-
- :write
- rem 写入
- set /a rest=rest-1
- echo %rest%>%windir%\retime.ini
- cls
- echo.
- echo 重置 Windows 7 试用期至30天
- echo.
- echo 已成功重置
- echo 需要重新启动以使重置生效
- echo.
- echo [现在重启] 请按任意键
- echo [稍后重启] 请关闭本窗口
- pause>nul
- rem shutdown /r /t 0
- goto load
- exit
-
-
- :error
- rem 防止严重BUG发生导致程序出错
- cls
- echo.
- echo 重置 Windows 7 试用期至30天
- echo.
- echo 发生严重错误,重置失败
- echo.
- echo [退出程序] 请按任意键
- pause>nul
- exit
复制代码
为了测试,我把真正的处理部分和费时间的检测部分和重启部分注释掉了,在重启的地方加了个循环,加了很多DEBUG用的ECHO语句。
我测试只能达到第3次运行就出错,去掉判断errorlevel的语句可以运行到第9次左右……郁闷啊……到底哪里出错了呢?大家帮我看看吧……
[ 本帖最后由 wkc0920 于 2010-7-31 15:38 编辑 ] |