2015-08-15 4 views
-1

Я делаю пакетный файл, который может проверить, есть ли у вашего офиса 2013 год или нет.Проверьте статус лицензии Office из командного файла

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, и я говорю --- License ---. Я хотел бы знать, где я, когда ошибаюсь. Думая об этом на пути к этому сценарию. Я говорю о (% ProgramFiles% \ Microsoft Office \ Office15 \ OSPP.VSB/Dstatus) Любая помощь, которую вы можете мне дать, мне очень понравится. Спасибо, что нашли время, чтобы прочитать это.

+0

Из того, что я видел в поисках Google и в вашем объяснении, вам нужно проверить на '--- ЛИЦЕНЗИРУЮТСЯ ---' вместо '--- ЛИЦЕНЗИРУЮТСЯ ---' - обратите внимание на пробелы в коде, которых не должно быть. – SomethingDark

+0

Благодарим вас за информацию. Я пробовал его с пробелами. Плюс попробуйте его только с помощью Лицензии .. Не работает для меня. Но, спасибо за информацию. – user2559533

ответ

0

Необходимо использовать флаг /I с find. Кроме того, вам нужно найти строку «LICENSE STATUS». Прямо сейчас вы делаете поиск по регистру «Статус лицензии», который не отображается с такой точной заглавной буквой в любом месте вывода OSPP.vbs.

Кроме того, вам нужно избавиться от пробелов в «--- LICENSED ---», потому что фактический вывод не имеет пробелов.

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 
+0

Спасибо за помощь .. Это работает .. Big Ups .. – user2559533

+0

@ user2559533 - Конечно! Если мой ответ помог вам, нажмите галочку рядом с моим ответом. – SomethingDark