我正在制作批处理文件,可以查看您的办公室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)任何帮助你都可以给我很大的帮助。感谢您抽出时间来阅读。
答案 0 :(得分:0)
您需要将/I
标记与find
一起使用。或者,您需要搜索字符串" LICENSE STATUS"。现在,您正在进行区分大小写的搜索"许可证状态,"在OSPP.vbs的输出中的任何地方都没有出现确切的大写字母。
另外,你需要摆脱" ---许可---"因为实际输出没有空格。
@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