2013kyj 发表于 2019-2-12 07:46:51

求大神添加最少代码变交互模式为倒计时模式

本人在网上找了一段备份激活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         备份系统激活信息。
echo         还原系统激活信息。
echo         退出。
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

l3429900 发表于 2019-2-12 09:05:27

https://jingyan.baidu.com/article/4b07be3c907e6f48b280f36d.html

x9tian 发表于 2019-2-12 10:26:26

删除这段:menu_pause echo. echo 按任意键返回主菜单! pause >nul goto menugoto menu_pause改成 timeout 5

2013kyj 发表于 2019-2-12 15:14:34

x9tian 发表于 2019-2-12 10:26
删除这段goto menu_pause改成 timeout 5

感谢楼主两位的鼎立相助,改了之后,还是需要选择才可以运行

hszgb 发表于 2019-2-12 17:03:39

需要在menu段做判断
页: [1]
查看完整版本: 求大神添加最少代码变交互模式为倒计时模式