Opgelost Office versie weergeven met batch file

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

Senso

Inventaris
Lid geworden
13 jun 2016
Berichten
10.975
Besturingssysteem
W10 Pro en W11 Pro
Office versie
Office 2007 H&S en Office 2021 Prof Plus
Op mijn oude pc met Office 2007 wordt het juist weergegeven. Op W11-pc met Office 2021 niet. De uitvoering (Pro) ontbreekt ook.
Ik heb de batch file aangepast opdat er niet x86 en x64 staat maar 32-bits en 64-bits. In het register staat Word.Application.16
Wie kan zorgen dat het op de W11-pc wel klopt. Of is er een andere methode via cmd?

@Echo off
SetLocal EnableExtensions
SetLocal EnableDelayedExpansion
for /f "delims=" %%a in ('"wmic OS get Caption /value|find "^=""') do set "%%a"
for /f "tokens=3 delims=." %%a in ('reg query "HKEY_CLASSES_ROOT\Word.Application\CurVer"') do set reg=%%a

set /a i=0
for %%b in (11 12 14 15 16) do (
if %%b == %reg% goto setver
set /a i+=1
)

:setver
set /a n=0
for %%c in (2003 2007 2010 2013 2016-2019-2021-365) do (
if !n! == !i! set ver=%%c&& goto endloop
set /a n+=1
)

:endloop
if exist "%PROGRAMFILES(X86)%" (set winbit=64) else (set winbit=32)
rem if exist "%PROGRAMFILES(X86)%" (set winbit=64) else (set winbit=86)
goto %winbit%
:64
if exist "%PROGRAMFILES%\Microsoft Office" (set offbit=64)
if exist "%PROGRAMFILES(X86)%\Microsoft Office" (set offbit=32)
rem if exist "%PROGRAMFILES(X86)%\Microsoft Office" (set offbit=86)
goto result
:86
if exist "%PROGRAMFILES%\Microsoft Office" (set offbit=32)
rem if exist "%PROGRAMFILES%\Microsoft Office" (set offbit=86)
:result
echo %Caption:~,-1% %winbit%-bits
echo Microsoft Office %ver% %offbit%-bits
rem echo %Caption:~,-1% x%winbit%-bit
rem echo Microsoft Office %ver% x%offbit%-bit
pause
 
Laatst bewerkt:
Uitdagend is dat je meerdere Office-versies naast elkaar kunt hebben. Het gaat dus eigenlijk om de default app.
Ik kwam dit ergens tegen:
Code:
reg query HKEY_CLASSES_ROOT\Word.Application\CurVer
Bij mij (windows 11, Office 365) geeft dat "Word.Application.16"
 
Bij mij ook, met een simpele VBS:
Code:
Set objWord = CreateObject("Word.Application")
Wscript.Echo "Office version: " & vbTab & objWord.Version & vbCrLf & _
         "Build:" & vbTab & vbTab & objWord.Build & vbCrLf & _
         "Product Code: " & vbTab & objWord.ProductCode
objWord.Quit
 
Ja, niet te doen. Genoeg op internet gelezen. Dan maar de gegevens verzamelen en handmatig in een batch file zetten en dan krijg ik een goed overzicht. Dus einde verhaal.

Bedankt voor de hulp.👍
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan