if exist "%Windir%\System32\sppsvc.exe" set SysPath=%Windir%\System32 echo ************************************************************ echo *** Windows Status *** echo ************************************************************ cscript /nologo %SysPath%\slmgr.vbs /dli 2016x86 reg query "HKLM\SOFTWARE\Microsoft\Office\16.0\Common\InstallRoot" >NUL 2>&1 if %errorlevel% equ 1 goto o2016x64 FOR /F "tokens=2*" %%a IN ('reg query "HKLM\SOFTWARE\Microsoft\Office\16.0\Common\InstallRoot" /v "Path"') do (SET office=%%b) echo ************************************************************ echo *** Office 2016 x64 Status *** echo ************************************************************ cd /d "%office%" cscript "%PROGRAMFILES%\Microsoft Office\Office16\ospp.vbs" /dstatus 2016x64 reg query "HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\16.0\Common\InstallRoot" >NUL 2>&1 if %errorlevel% equ 1 goto o2016x86 FOR /F "tokens=2*" %%a IN ('reg query "HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\16.0\Common\InstallRoot" /v "Path"') do (SET office=%%b) echo ************************************************************ echo *** Office 2016 x86 Status *** echo ************************************************************ cd /d "%office%" cscript "C:\Program Files (x86)\Microsoft Office\Office16\OSPP.vbs" /dstatus pause when I get it working proper in x64 I get errors in x86 or vs versa. any help appreciated
Hey Snuffy, You should wrap your code with the CODE TAG. Can't you just: Code: If EXIST "C:\Program Files (x86)\Microsoft Office\Office16\OSPP.vbs" cscript "C:\Program Files (x86)\Microsoft Office\Office16\OSPP.vbs" /dstatus If EXIST "C:\Program Files\Microsoft Office\Office16\ospp.vbs" cscript "C:\Program Files\Microsoft Office\Office16\ospp.vbs" /dstatus pause In x86 you have "%PROGRAMFILES%...". perhaps that's your issue.
I finally came up with: cause the least amount of errors. gives lots of info. just can not figure how to set the %error to not show, Code: @echo off color 1E if exist "%Windir%\Sysnative\sppsvc.exe" set SysPath=%Windir%\Sysnative if exist "%Windir%\System32\sppsvc.exe" set SysPath=%Windir%\System32 echo ************************************************************ echo *** Windows Status *** echo ************************************************************ cscript /nologo %SysPath%\slmgr.vbs /dli @Echo off Setlocal :: Get windows Version numbers For /f "tokens=2 delims=[]" %%G in ('ver') Do (set _version=%%G) For /f "tokens=2,3,4 delims=. " %%G in ('echo %_version%') Do (set _major=%%G& set _minor=%%H & set _build=%%I) Echo Major version: %_major% Minor Version: %_minor%.%_build% @Echo off :pause ::SPack.cmd @echo off SETLOCAL :: Get the WINDOWS SERVICE PACK Level :: For NT or greater (XP, Win 7 etc) :: Requires the REG.exe utility :: The delimiters below are TAB plus Space FOR /f "tokens=2* delims= " %%G IN ('Reg.exe QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CurrentVersion ^| find /i ^"CurrentVersion^"') DO ( set _spack=%%H & echo Current Service Pack IS: %%H) :o2016x86 echo ************************************************************ echo *** Office 2016 x64 Status *** echo ************************************************************ cscript "%PROGRAMFILES%\Microsoft Office\Office16\ospp.vbs" /dstatus :o2016x64 echo ************************************************************ echo *** Office 2016 x86 Status *** echo ************************************************************ cscript "%PROGRAMFILES(x86)%\Microsoft Office\Office16\ospp.vbs" /dstatus