2015-08-15 58 views
-1

我正在創建一個批處理文件,可以檢查您的辦公室2013是否擁有許可證。從批處理文件檢查辦公室許可證狀態

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

從我在谷歌搜索和你的解釋所看到的,您需要檢查針對'---特許經營---',而不是'---特許經營---' - 注意代碼中不應該存在的空格。 – SomethingDark

+0

感謝您的信息。我試着用空格和空格。另外,只是使用Licensed嘗試它..沒有爲我工作。但是,謝謝你的信息。 – 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

謝謝你的幫助..它的工作..大Ups .. – user2559533

+0

@ user2559533 - 當然可以!如果我的回答對您有幫助,請點擊我答案旁邊的複選標記。 – SomethingDark