从批处理文件中检查办公室许可证状态

时间:2015-08-15 04:34:16

标签: batch-file scripting office-2013

我正在制作批处理文件,可以查看您的办公室2013是否有icense。

for /f "tokens=3 delims=: " %%a in (
'cscript "%ProgramFiles%\Microsoft Office\Office15\OSPP.VBS" /dstatus ^| find "License Status:"' 

) do set "licenseStatus=%%a"
if /i "%licenseStatus%"=="--- LICENSED ---" (
Echo I am Licensed
Pause
EXIT
) Else (
Echo I am NOT Licensed
Pause
EXIT
)

但是每次我运行这个代码时,它都会以一种我未获得许可的方式返回。我已经检查过它自己运行ospp.vbs脚本了 - 许可---。我想知道我哪里错了。在这个脚本的路径中思考它。我在谈论(%ProgramFiles%\ Microsoft Office \ Office15 \ OSPP.VSB / Dstatus)任何帮助你都可以给我很大的帮助。感谢您抽出时间来阅读。

1 个答案:

答案 0 :(得分:0)

您需要将/I标记与find一起使用。或者,您需要搜索字符串" LICENSE STATUS"。现在,您正在进行区分大小写的搜索"许可证状态,"在OSPP.vbs的输出中的任何地方都没有出现确切的大写字母。

另外,你需要摆脱" ---许可---"因为实际输出没有空格。

enter image description here

@echo off

:: The below directory is for users with a 64-bit operating system
:: 32-bit users can find the script in "%ProgramFiles%"\Microsoft Office\Office15\OSPP.vbs"
for /f "tokens=3 delims= " %%a in ('cscript "%ProgramFiles(x86)%\Microsoft Office\Office15\OSPP.VBS" /dstatus ^| find /i "License Status:"') do (
    set "licenseStatus=%%a"
)

if /i "%licenseStatus%"=="---LICENSED---" (
    Echo I am Licensed
) Else (
    Echo I am NOT Licensed
)

pause