以下是自己参考网上的代码,经过多次测试写的《备份恢复Microsoft Office2010-2019激活文件.cmd》,欢迎测试反馈。复制内容到剪贴板
代码:
@echo off
echo 重要说明
echo.
echo 一、office2010的激活文件在windows7及以上系统中是通用的,只需备份、恢复tokens.dat、cache.dat两个文件及激活密钥即可。
echo.
echo 二、data.dat是系统隐藏文件,包含windows系统及office密钥信息,在Windows8及以上系统恢复office2013、office2016、office2019激活文件tokens.dat、cache.dat、data.dat后无需输入密钥,软件自动激活。(为了安全,请务必保存好windows系统及office密钥)
echo.
echo 三、在windows8系统中激活的office2013、office2016、office2019激活文件tokens.dat、cache.dat,可以用于windows8.1、windows10系统。
echo.
echo 1、用法:安装完office2013、office2016、office2019后无需联网,用原windows8系统中备份的激活文件tokens.dat、cache.dat覆盖当前系统中的文件,然后用批处理导入对应office密钥即可实现激活。
echo.
echo 2、注意:千万不要使用data.dat文件进行覆盖,否则windows系统激活失效,打开office软件会进行重新配置,并且提示配置失败要求退出软件。此时要想正常激活使用,必须打开控制面板-卸载程序-更改office安装,选择输入产品密钥,输入对应密钥后,等待软件重新配置完毕方可激活使用。
echo.
:获取 Microsoft Office 安装路径
Setlocal Enabledelayedexpansion
for /f "delims=\ tokens=5,*" %%a in ('reg query HKLM\SOFTWARE\Microsoft\Office /f "." /k 2^>nul') do (
for /f "skip=1 tokens=2,* delims= " %%b in ('reg query HKLM\SOFTWARE\Microsoft\Office\%%~a\Word\InstallRoot /v Path 2^>nul') do (
set "WordPath=%%~c"
)
)
if defined WordPath (set "WordPath=%WordPath:root\Office16=Office16%") else (
echo 未检测到当前系统安装有 Microsoft Office 软件,请直接关闭或按任意键退出 ......
pause >nul
goto :eof
)
:获取 Microsoft Office 版本
for /f "tokens=4 delims=, " %%i in ('cscript "%WordPath%ospp.vbs" /dstatus') do (set /a n =1 & if !n! equ 3 set "V=%%i")
cd /d "%~dp0"
title ===备份恢复 Microsoft Office 2010、2013、2016、2019激活文件===
echo.
echo 请选择你需要的功能
echo.
:begin
set "xxx="&set /p xxx=1.备份 2.恢复:
if "%xxx%" neq "1" if "%xxx%" neq "2" cls&goto begin
cls&goto xx%xxx%
:xx1
if /i !V!==14 goto 2010b
if /i !V!==15 goto 2013b
if /i !V!==16 goto 2016b
if /i !V!==19 goto 2019b
echo 未检测到系统安装有Office软件,请直接关闭或按任意键退出 ......
pause >nul
goto :eof
:xx2
if /i !V!==14 goto 2010a
if /i !V!==15 goto 2013a
if /i !V!==16 goto 2016a
if /i !V!==19 goto 2019a
echo 未检测到系统安装有Office软件,请直接关闭或按任意键退出 ......
pause >nul
goto :eof
:2010b
for /f "tokens=3" %%a in ('wmic os get Caption') do if /i "%%a" neq "" set Win=%%a
if /i %Win%==7 echo 当前系统为 Windows 7&goto :2010Win7b
if /i %Win%==8 echo 当前系统为 Windows 8&goto :2010Win7b
if /i %Win%==8.1 echo 当前系统为 Windows 8.1&goto :2010Win7b
if /i %Win%==10 echo 当前系统为 Windows 10&goto :2010Win7b
goto :eof
:2010Win7b
md \win7_2010
xcopy "%ALLUSERSPROFILE%\Microsoft\OfficeSoftwareProtectionPlatform\tokens.dat" "%~dp0"\Win7_Office2010\tokens.dat /q /y
xcopy "%ALLUSERSPROFILE%\Microsoft\OfficeSoftwareProtectionPlatform\Cache\cache.dat" "%~dp0"\Win7_Office2010\cache.dat /q /y
echo 备份完成!
echo 请直接关闭或按任意键退出 ......
pause >nul
goto :eof
:2013b
for /f "tokens=3" %%a in ('wmic os get Caption') do if /i "%%a" neq "" set Win=%%a
if /i %Win%==7 goto :2013Win7b
if /i %Win%==8 goto :2013Win8b
if /i %Win%==8.1 goto :2013Win8.1b
if /i %Win%==10 goto :2013Win10b
goto :eof
:2013Win7b
echo 当前系统为 Windows 7
xcopy "%ALLUSERSPROFILE%\Microsoft\OfficeSoftwareProtectionPlatform\tokens.dat" "%~dp0"\Win7_Office2013\tokens.dat /q /y
xcopy "%ALLUSERSPROFILE%\Microsoft\OfficeSoftwareProtectionPlatform\Cache\cache.dat" "%~dp0"\Win7_Office2013\cache.dat /q /y
echo 备份完成!
echo 请直接关闭或按任意键退出 ......
pause >nul
goto :eof
:2013Win8b
echo 当前系统为 Windows 8
xcopy "%SystemRoot%\system32\spp\store\data.dat" "%~dp0"\Win8_Office2013\data.dat /h /k /q /y
xcopy "%SystemRoot%\system32\spp\store\tokens.dat" "%~dp0"\Win8_Office2013\tokens.dat /q /y
xcopy "%SystemRoot%\system32\spp\store\Cache\cache.dat" "%~dp0"\Win8_Office2013\cache.dat /q /y
echo 备份完成!
echo 请直接关闭或按任意键退出 ......
pause >nul
goto :eof
:2013Win8.1b
echo 当前系统为 Windows 8.1
xcopy "%SystemRoot%\system32\spp\store\2.0\data.dat" "%~dp0"\Win8.1_Office2013\data.dat /h /k /q /y
xcopy "%SystemRoot%\system32\spp\store\2.0\tokens.dat" "%~dp0"\Win8.1_Office2013\tokens.dat /q /y
xcopy "%SystemRoot%\system32\spp\store\2.0\Cache\cache.dat" "%~dp0"\Win8.1_Office2013\cache.dat /q /y
echo 备份完成!
echo 请直接关闭或按任意键退出 ......
pause >nul
goto :eof
:2013Win10b
echo 当前系统为 Windows 10
xcopy "%SystemRoot%\system32\spp\store\2.0\data.dat" "%~dp0"\Win10_Office2013\data.dat /h /k /q /y
xcopy "%SystemRoot%\system32\spp\store\2.0\tokens.dat" "%~dp0"\Win10_Office2013\tokens.dat /q /y
xcopy "%SystemRoot%\system32\spp\store\2.0\Cache\cache.dat" "%~dp0"\Win10_Office2013\cache.dat /q /y
echo 备份完成!
echo 请直接关闭或按任意键退出 ......
pause >nul
goto :eof
:2016b
for /f "tokens=3" %%a in ('wmic os get Caption') do if /i "%%a" neq "" set Win=%%a
if /i %Win%==7 goto :2016Win7b
if /i %Win%==8 goto :2016Win8b
if /i %Win%==8.1 goto :2016Win8.1b
if /i %Win%==10 goto :2016Win10b
goto :eof
:2016Win7b
echo 当前系统为 Windows 7
xcopy "%ALLUSERSPROFILE%\Microsoft\OfficeSoftwareProtectionPlatform\tokens.dat" "%~dp0"\Win7_Office2016\tokens.dat /q /y
xcopy "%ALLUSERSPROFILE%\Microsoft\OfficeSoftwareProtectionPlatform\Cache\cache.dat" "%~dp0"\Win7_Office2016\cache.dat /q /y
echo 备份完成!
echo 请直接关闭或按任意键退出 ......
pause >nul
goto :eof
:2016Win8b
echo 当前系统为 Windows 8
xcopy "%SystemRoot%\system32\spp\store\data.dat" "%~dp0"\Win8_Office2016\data.dat /h /k /q /y
xcopy "%SystemRoot%\system32\spp\store\tokens.dat" "%~dp0"\Win8_Office2016\tokens.dat /q /y
xcopy "%SystemRoot%\system32\spp\store\Cache\cache.dat" "%~dp0"\Win8_Office2016\cache.dat /q /y
echo 备份完成!
echo 请直接关闭或按任意键退出 ......
pause >nul
goto :eof
:2016Win8.1b
echo 当前系统为 Windows 8.1
xcopy "%SystemRoot%\system32\spp\store\2.0\data.dat" "%~dp0"\Win8.1_Office2016\data.dat /h /k /q /y
xcopy "%SystemRoot%\system32\spp\store\2.0\tokens.dat" "%~dp0"\Win8.1_Office2016\tokens.dat /q /y
xcopy "%SystemRoot%\system32\spp\store\2.0\Cache\cache.dat" "%~dp0"\Win8.1_Office2016\cache.dat /q /y
echo 备份完成!
echo 请直接关闭或按任意键退出 ......
pause >nul
goto :eof
:2016Win10b
echo 当前系统为 Windows 10
xcopy "%SystemRoot%\system32\spp\store\2.0\data.dat" "%~dp0"\Win10_Office2016\data.dat /h /k /q /y
xcopy "%SystemRoot%\system32\spp\store\2.0\tokens.dat" "%~dp0"\Win10_Office2016\tokens.dat /q /y
xcopy "%SystemRoot%\system32\spp\store\2.0\Cache\cache.dat" "%~dp0"\Win10_Office2016\cache.dat /q /y
echo 备份完成!
echo 请直接关闭或按任意键退出 ......
pause >nul
goto :eof
:2019b
for /f "tokens=3" %%a in ('wmic os get Caption') do if /i "%%a" neq "" set Win=%%a
if /i %Win%==10 goto :2019Win10b
goto :eof
:2019Win10b
echo 当前系统为 Windows 10
xcopy "%SystemRoot%\system32\spp\store\2.0\data.dat" "%~dp0"\Win10_Office2019\data.dat /h /k /q /y
xcopy "%SystemRoot%\system32\spp\store\2.0\tokens.dat" "%~dp0"\Win10_Office2019\tokens.dat /q /y
xcopy "%SystemRoot%\system32\spp\store\2.0\Cache\cache.dat" "%~dp0"\Win10_Office2019\cache.dat /q /y
echo 备份完成!
echo 请直接关闭或按任意键退出 ......
pause >nul
goto :eof
:2010a
net stop osppsvc
for /f "tokens=3" %%a in ('wmic os get Caption') do if /i "%%a" neq "" set Win=%%a
if /i %Win%==7 echo 当前系统为 Windows 7&goto :2010Win7a
if /i %Win%==8 echo 当前系统为 Windows 8&goto :2010Win7a
if /i %Win%==8.1 echo 当前系统为 Windows 8.1&goto :2010Win7a
if /i %Win%==10 echo 当前系统为 Windows 10&goto :2010Win7a
goto :eof
:2010Win7a
net stop osppsvc
xcopy "%~dp0"\Win7_Office2010\tokens.dat "%ALLUSERSPROFILE%\Microsoft\OfficeSoftwareProtectionPlatform\tokens.dat" /q /y
xcopy "%~dp0"\Win7_Office2010\cache.dat "%ALLUSERSPROFILE%\Microsoft\OfficeSoftwareProtectionPlatform\Cache\cache.dat" /q /y
cscript "%WordPath%ospp.vbs" /inpkey:GV3XD-HYC8Q-J2BTD-JQYV4-MVCT2
echo 恢复完成!
echo 请直接关闭或按任意键退出 ......
pause >nul
goto :eof
:2013a
for /f "tokens=3" %%a in ('wmic os get Caption') do if /i "%%a" neq "" set Win=%%a
if /i %Win%==7 goto :2013Win7a
if /i %Win%==8 goto :2013Win8a
if /i %Win%==8.1 goto :2013Win8.1a
if /i %Win%==10 goto :2013Win10a
goto :eof
:2013Win7a
echo 当前系统为 Windows 7
net stop osppsvc
xcopy "%~dp0"\Win7_Office2013\tokens.dat "%ALLUSERSPROFILE%\Microsoft\OfficeSoftwareProtectionPlatform\tokens.dat" /q /y
xcopy "%~dp0"\Win7_Office2013\cache.dat "%ALLUSERSPROFILE%\Microsoft\OfficeSoftwareProtectionPlatform\Cache\cache.dat" /q /y
cscript "%WordPath%ospp.vbs" /inpkey:P47N9-3PRHV-X6V3V-X74WG-J2MG7
echo 恢复完成!
echo 请直接关闭或按任意键退出 ......
pause >nul
goto :eof
:2013Win8a
echo 当前系统为 Windows 8
xcopy "%~dp0"\Win8_Office2013\data.dat "%SystemRoot%\system32\spp\store\data.dat" /h /k /q /y
xcopy "%~dp0"\Win8_Office2013\tokens.dat "%SystemRoot%\system32\spp\store\tokens.dat" /q /y
xcopy "%~dp0"\Win8_Office2013\cache.dat "%SystemRoot%\system32\spp\store\Cache\cache.dat" /q /y
echo 恢复完成!
echo 请直接关闭或按任意键退出 ......
pause >nul
goto :eof
:2013Win8.1a
echo 当前系统为 Windows 8.1
xcopy "%~dp0"\Win8.1_Office2013\data.dat "%SystemRoot%\system32\spp\store\2.0\data.dat" /h /k /q /y
xcopy "%~dp0"\Win8.1_Office2013\tokens.dat "%SystemRoot%\system32\spp\store\2.0\tokens.dat" /q /y
xcopy "%~dp0"\Win8.1_Office2013\cache.dat "%SystemRoot%\system32\spp\store\2.0\Cache\cache.dat" /q /y
echo 恢复完成!
echo 请直接关闭或按任意键退出 ......
pause >nul
goto :eof
:2013Win10a
echo 当前系统为 Windows 10
xcopy "%~dp0"\Win10_Office2013\data.dat "%SystemRoot%\system32\spp\store\2.0\data.dat" /h /k /q /y
xcopy "%~dp0"\Win10_Office2013\tokens.dat "%SystemRoot%\system32\spp\store\2.0\tokens.dat" /q /y
xcopy "%~dp0"\Win10_Office2013\cache.dat "%SystemRoot%\system32\spp\store\2.0\Cache\cache.dat" /q /y
echo 恢复完成!
echo 请直接关闭或按任意键退出 ......
pause >nul
goto :eof
:2016a
for /f "tokens=3" %%a in ('wmic os get Caption') do if /i "%%a" neq "" set Win=%%a
if /i %Win%==7 goto :2016Win7a
if /i %Win%==8 goto :2016Win8a
if /i %Win%==8.1 goto :2016Win8.1a
if /i %Win%==10 goto :2016Win10a
goto :eof
:2016Win7a
echo 当前系统为 Windows 7
net stop osppsvc
xcopy "%~dp0"\Win7_Office2016\tokens.dat "%ALLUSERSPROFILE%\Microsoft\OfficeSoftwareProtectionPlatform\tokens.dat" /q /y
xcopy "%~dp0"\Win7_Office2016\cache.dat "%ALLUSERSPROFILE%\Microsoft\OfficeSoftwareProtectionPlatform\Cache\cache.dat" /q /y
cscript "%WordPath%ospp.vbs" /inpkey:CNXHK-F3QWX-84HFW-697BG-WXCQY
echo 恢复完成!
echo 请直接关闭或按任意键退出 ......
pause >nul
goto :eof
:2016Win8a
echo 当前系统为 Windows 8
xcopy "%~dp0"\Win8_Office2016\data.dat "%SystemRoot%\system32\spp\store\data.dat" /h /k /q /y
xcopy "%~dp0"\Win8_Office2016\tokens.dat "%SystemRoot%\system32\spp\store\tokens.dat" /q /y
xcopy "%~dp0"\Win8_Office2016\cache.dat "%SystemRoot%\system32\spp\store\Cache\cache.dat" /q /y
echo 恢复完成!
echo 请直接关闭或按任意键退出 ......
pause >nul
goto :eof
:2016Win8.1a
echo 当前系统为 Windows 8.1
xcopy "%~dp0"\Win8.1_Office2016\data.dat "%SystemRoot%\system32\spp\store\2.0\data.dat" /h /k /q /y
xcopy "%~dp0"\Win8.1_Office2016\tokens.dat "%SystemRoot%\system32\spp\store\2.0\tokens.dat" /q /y
xcopy "%~dp0"\Win8.1_Office2016\cache.dat "%SystemRoot%\system32\spp\store\2.0\Cache\cache.dat" /q /y
echo 恢复完成!
echo 请直接关闭或按任意键退出 ......
pause >nul
goto :eof
:2016Win10a
echo 当前系统为 Windows 10
xcopy "%~dp0"\Win10_Office2016\data.dat "%SystemRoot%\system32\spp\store\2.0\data.dat" /h /k /q /y
xcopy "%~dp0"\Win10_Office2016\tokens.dat "%SystemRoot%\system32\spp\store\2.0\tokens.dat" /q /y
xcopy "%~dp0"\Win10_Office2016\cache.dat "%SystemRoot%\system32\spp\store\2.0\Cache\cache.dat" /q /y
echo 恢复完成!
echo 请直接关闭或按任意键退出 ......
pause >nul
goto :eof
:2019a
for /f "tokens=3" %%a in ('wmic os get Caption') do if /i "%%a" neq "" set Win=%%a
if /i %Win%==10 goto :2019Win10a
goto :eof
:2019Win10a
echo 当前系统为 Windows 10
xcopy "%~dp0"\Win10_Office2019\data.dat "%SystemRoot%\system32\spp\store\2.0\data.dat" /h /k /q /y
xcopy "%~dp0"\Win10_Office2019\tokens.dat "%SystemRoot%\system32\spp\store\2.0\tokens.dat" /q /y
xcopy "%~dp0"\Win10_Office2019\cache.dat "%SystemRoot%\system32\spp\store\2.0\Cache\cache.dat" /q /y
echo 恢复完成!
echo 请直接关闭或按任意键退出 ......
pause >nul
goto :eof
下面这个是备份恢复Windows激活文件的批处理。复制内容到剪贴板
代码:
@echo off
@echo 重要说明
echo.
@echo Windows 7专业版与企业版的激活文件不能通用,错误使用不同版本的激活文件,系统安装的网络打印机将不能正常打印,系统自带的截图工具不能使用,windows的个性化设置也不能使用,打开个性化设置会出现“此页在该版本的Windows中不可用”。
echo.
cd /d "%~dp0"
title ===备份恢复 Windows 7 系统激活文件===
echo.
echo.
echo.
@echo 请选择你需要的功能
echo.
:begin
set "xxx="&set /p xxx=1.备份 2.恢复:
if "%xxx%" neq "1" if "%xxx%" neq "2" cls&goto begin
cls&goto xx%xxx%
:xx1
@echo off
copy %windir%\System32\spp\tokens\pkeyconfig\pkeyconfig.xrm-ms
copy %windir%\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareProtectionPlatform\tokens.dat
copy %windir%\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareProtectionPlatform\Cache\cache.dat
echo 备份完成!
echo 请直接关闭或按任意键退出 ......
pause >nul
goto :eof
:xx2
@echo off
net stop sppsvc /y
takeown /f "%WinDir%\System32\spp\tokens\pkeyconfig\pkeyconfig.xrm-ms"
cacls "%WinDir%\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareProtectionPlatform\tokens.dat" /e /g everyone:f
cacls "%WinDir%\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareProtectionPlatform\Cache\cache.dat" /e /g everyone:f
cacls "%WinDir%\System32\spp\tokens\pkeyconfig\pkeyconfig.xrm-ms" /e /g everyone:f
ren "%WinDir%\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareProtectionPlatform\tokens.dat" "tokens.bak"
ren "%WinDir%\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareProtectionPlatform\Cache\cache.dat" "cache.bak"
ren "%WinDir%\System32\spp\tokens\pkeyconfig\pkeyconfig.xrm-ms" "pkeyconfig.bak"
copy tokens.dat "%WinDir%\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareProtectionPlatform"
copy cache.dat "%WinDir%\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareProtectionPlatform\Cache"
copy pkeyconfig.xrm-ms "%WinDir%\System32\spp\tokens\pkeyconfig"
net start sppsvc
slmgr.vbs /ipk 374KC-FYD3Y-YV69W-32J24-CWRXV
echo 恢复完成!
echo 请直接关闭或按任意键退出 ......
pause >nul
goto :eof
新建*.txt文本文件,复制粘贴代码,把txt后缀改成bat
[
本帖最后由 qq380495995 于 2021-1-29 10:36(GMT+8) 编辑 ]