|
本人在网上找了一段备份激活win10信息的代码,启动后需要手动输入数字进行交互操作(例如先输入1再输入3是备份激活信息后退出),但是有时,不想交互,而是直接倒计时自动运行1然后倒计时选择3退出,在此求助大神,在不改原代码的情况下中,加入一条命令跳过交互可直接实现上面的功能,同时,当我把这行命令注释后,又可以变为交互模式,非常感谢,原代码如下,
- @ECHO OFF&PUSHD %~DP0 &TITLE WIN10激活信息备份还原
- setlocal enabledelayedexpansion
- mode con cols=60 lines=30
- color 00
- cd.>%windir%\GetAdmin
- if exist %windir%\GetAdmin (del /f /q "%windir%\GetAdmin") else (
- echo CreateObject^("Shell.Application"^).ShellExecute "%~s0", "%*", "", "runas", 1 >> "%temp%\Admin.vbs"
- "%temp%\Admin.vbs"
- del /s /q "%temp%\Admin.vbs"
- exit /b 2)
- cls
- if /i "%PROCESSOR_IDENTIFIER:~0,3%"=="x86" (
- set processor=x86
- ) else (
- set processor=x64
- )
- :menu
- cls
- set activation_flag=0
- echo ----------------------------------------------------------
- echo [1]备份系统激活信息。
- echo [2]还原系统激活信息。
- echo [3]退出。
- echo ----------------------------------------------------------
- choice /n /c 12345678 /m 请输入数字选择:
- if errorlevel 3 exit
- if errorlevel 2 goto restore
- if errorlevel 1 goto backup
- :menu_pause
- echo.
- echo 按任意键返回主菜单!
- pause >nul
- goto menu
- :restore
- if not exist "%USERPROFILE%\Desktop\Windows_Lic.bak" (
- echo 在桌面上未找到名为 Windows_Lic.bak 的备份文件夹!
- goto menu_pause
- )
- for %%i in ("%USERPROFILE%\Desktop\Windows_Lic.bak") do set Attrib=%%~ai
- if "%Attrib:~0,1%" == "d" (
- set Attrib=
- ) else (
- echo 在桌面上未找到名为 Windows_Lic.bak 的文件,而不是文件夹!
- goto menu_pause
- )
- if not exist "%USERPROFILE%\Desktop\Windows_Lic.bak\data.dat" (
- echo 在桌面上未找到名为 Windows_Lic.bak\data.dat 的备份文件!
- goto menu_pause
- )
- if not exist "%USERPROFILE%\Desktop\Windows_Lic.bak\tokens.dat" (
- echo 在桌面上未找到名为 Windows_Lic.bak\tokens.dat 的备份文件!
- goto menu_pause
- )
- echo 正在尝试还原激活信息...
- if exist "%SystemRoot%\System32\spp\store\2.0\tokens.dat.bak" del /s /q /f "%SystemRoot%\System32\spp\store\2.0\tokens.dat.bak" >nul 2>nul
- if exist "%SystemRoot%\System32\spp\store\2.0\tokens.dat" rename "%SystemRoot%\System32\spp\store\2.0\tokens.dat" "tokens.dat.bak" >nul 2>nul
- if exist "%SystemRoot%\System32\spp\store\2.0\tokens.dat.bak" del /s /q /f "%SystemRoot%\System32\spp\store\2.0\tokens.dat.bak" >nul 2>nul
- xcopy /f/h/y "%USERPROFILE%\Desktop\Windows_Lic.bak\data.dat" "%SystemRoot%\System32\spp\store\2.0" >nul 2>nul
- if "%errorlevel%" == "0" (echo 还原安装密钥信息成功!) else (echo 还原安装密钥信息失败!)
- xcopy /f/h/y "%USERPROFILE%\Desktop\Windows_Lic.bak\tokens.dat" "%SystemRoot%\System32\spp\store\2.0" >nul 2>nul
- if "%errorlevel%" == "0" (echo 还原系统激活信息成功!) else (echo 还原系统激活信息失败!)
- goto menu_pause
- :backup
- echo 正在桌面创建 Windows_Lic.bak 文件夹...
- mkdir "%USERPROFILE%\Desktop\Windows_Lic.bak" >nul 2>nul
- if "%errorlevel%" == "1" (
- del /s /q /f /ah "%USERPROFILE%\Desktop\Windows_Lic.bak\*.*" >nul 2>nul
- del /s /q /f "%USERPROFILE%\Desktop\Windows_Lic.bak\*.*" >nul 2>nul
- )
- xcopy /f/h/y "%SystemRoot%\System32\spp\store\2.0\data.dat" "%USERPROFILE%\Desktop\Windows_Lic.bak" >nul 2>nul
- if "%errorlevel%" == "0" (echo 备份安装密钥信息成功!) else (echo 备份安装密钥信息失败!)
- xcopy /f/h/y "%SystemRoot%\System32\spp\store\2.0\tokens.dat" "%USERPROFILE%\Desktop\Windows_Lic.bak" >nul 2>nul
- if "%errorlevel%" == "0" (echo 备份系统激活信息成功!) else (echo 备份系统激活信息失败!)
- goto menu_pause
复制代码 |
|