Пакетная проверка файлов офисной архитектуры версии

У меня есть следующий скрипт, который будет печатать текущую версию офиса и архитектуры ОС,

   Echo off&SetLocal
Set "KEY="&Set "GUID="&Set "IOV="&Set "MWB=32"&Set "MOB=32"
Echo=%PROCESSOR_ARCHITECTURE% %PROCESSOR_ARCHITEW6432%|Find "64">Nul&&(
   Set "KEY=\Wow6432Node"&Set "MWB=64")
Set "KEY=HKLM\Software%KEY%\Microsoft\Windows\CurrentVersion\Uninstall"
For /f "Delims=" %%a In ('Reg Query %KEY% /k /f "*-001B-*0FF1CE}"') Do (
   If Not Defined GUID Set "GUID=%%~nxa")
If Not Defined GUID (Echo=Unable to find Office Product&GoTo :EndIt)
If %GUID:~20,1% Equ 1 Set "MOB=64"
If %GUID:~4,1% Equ 4 (Set IOV=10) Else (If %GUID:~4,1% Equ 2 (Set IOV=07) Else (
      If %GUID:~4,1% Equ 5 (Set IOV=13) Else (Set IOV=??)))
Echo=&Echo= Office 20%IOV% %MOB%-bit Product installed on a %MWB%-bit OS
:EndIt

Я хотел бы настроить этот скрипт, чтобы сделать некоторые другие вещи, если вывод похож на этот Office 20?? 32-битный продукт установлен на 64-битной ОС

   If Echo= Office 2007 32-bit Product installed on a 64-bit OS (run another script or command)

Может ли кто-нибудь помочь мне реализовать это? Заранее спасибо.

2 ответа

Решение

Сам нашел решение, ЕСЛИ%MOB%==32 IF %MWB%==64 (эхо-команды)

Исходный вопрос и принятый ответ здесь не имели для меня смысла, но это единственное место, где я мог найти пакетный скрипт, который раскрывал бы разрядность Office. К сожалению, этот код немного устарел и не работал с Office 2016/365, который я использовал. Я нашел другое место в реестре, которое мне подходит, и обновил скрипт следующим образом.

      @ECHO OFF
SetLocal
COLOR 71
TITLE %~n0
CLS
ECHO Detecting Office Bitness...

Set "IOV=" & Set "MWB=32" & Set "MOB="

REM --- Determine the Windows bitness
ECHO=%PROCESSOR_ARCHITECTURE% %PROCESSOR_ARCHITEW6432%|Find "64">Nul&&(Set "KEY=\Wow6432Node"&Set "MWB=64")

REM --- Determine the Office bitness
REM This registry location may be more geared to O365.  BS 7/19/2022
for /f "tokens=3 delims=, " %%B in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration" /v Platform') do set "MOB=%%B"

REM --- Determine the Office version number
for /f "tokens=3 delims=, " %%B in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration" /v VersionToReport') do set "IOV=%%B"

ECHO.
ECHO Office %IOV% %MOB% product installed on a %MWB%-bit OS
ECHO.

Pause

Выход

Обнаружение битности Office...

Продукт Office 16.0.14931.20604 x86, установленный в 64-разрядной ОС

Нажмите любую клавишу для продолжения . . .

Другие вопросы по тегам