|
本帖最后由 七仙花 于 2021-1-27 09:54 编辑
- @echo off
- Setlocal Enabledelayedexpansion
- start slmgr /xpr
- :获取 Microsoft Office 安装路径
- 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
- )
- for /f "tokens=3 delims=: " %%i in ('cscript "%WordPath%ospp.vbs" /dstatus') do (set /a n+=1 & if !n! equ 4 set "A=%%i")
- start slmgr /xpr %A%
- exit
复制代码
上面这个批是通过读取注册表获取Office安装路径,然后调用脚本文件ospp.vbs来配合slmgr /xpr查看Office是否永久激活,但有人反映说检测不到Office,可能读取不到正确的安装路径。现在重新修改了,使用wmic命令直接查找脚本文件ospp.vbs。当然使用wmic命令会进行全盘搜索,运行时间会长一点,如果精简掉脚本文件ospp.vbs的话,那就没办法了。
- @echo off
- Setlocal Enabledelayedexpansion
- :查看Windows是否永久激活
- start slmgr /xpr
- :获取Office脚本文件ospp.vbs安装路径
- for /f "skip=1 delims=" %%i in ('wmic datafile where "filename='ospp' and Extension='vbs'" get name') do (set /a n+=1 & if !n! equ 1 set "ospp=%%i")
- :查看Office是否永久激活
- for /f "tokens=3 delims=: " %%a in ('cscript "%ospp%" /dstatus') do (set /a m+=1 & if !m! equ 4 set "V=%%a")
- if defined V (start slmgr /xpr %V%) else (
- echo 未检测到当前系统安装有 Microsoft Office 软件,请直接关闭或按任意键退出 ......
- pause >nul
- goto :eof
- )
复制代码
晚上回家又试了下,发现在win7下用slmgr /xpr (SKU ID)这个命令无法读取Office的注册信息,通过与win10对比,应该是版本的问题,看下图。
|
评分
-
查看全部评分
|