美好的一天。
我试图编写一个批处理文件,该文件提取一般系统信息,并在以后将它们写入最后的.txt文件。 到目前为止,我已经编写了批处理文件来提取几个细节,但我仍然坚持确定安装的Office版本。我找到了3年前的一个帖子 - (quick command or batch script to determine Windows and Office version) - 详细说明了获取版本号所需的命令,但我不知道如何将其合并,因为我仍然非常学习者在脚本方面。我可以很容易地添加该链接中建议的命令,但它并没有给我输出我真正想看到的输出。当使用该命令时,我得到了答案
HKEY_CLASSES_ROOT\Word.Application\CurVer
(Default) REG_SZ Word.Application.15
因为它将其检测为Word.Application.15,这意味着它的Office 2013.
我试图在这里实现的是,如果答案是Word.Application.15,它应该设置一个名为" officeversion"的变量。如Office 2013.如果它的Word.Application.16分别应该是Office 2016并将其设置为名为" officeversion"的变量。
为方便起见,这是版本图表。
Office 97 - 7.0
Office 98 - 8.0
Office 2000 - 9.0
Office XP - 10.0
Office 2003 - 11.0
Office 2007 - 12.0
Office 2010 - 14.0
Office 2013 - 15.0
Office 2016 - 16.0
如果有人可以提供帮助,我们将不胜感激。
答案 0 :(得分:0)
这是我写过的一些可能有帮助的内容,我从未安装过Office产品,因此未经测试:
@Echo Off & SetLocal
Echo=%PROCESSOR_ARCHITECTURE% %PROCESSOR_ARCHITEW6432%|Find "64">Nul&&(
Set "KEY=\Wow6432Node" & Set "MWB=64")||(Set "MWB=32" & Set "MOB=32")
Set "KEY=HKLM\Software%KEY%\Microsoft\Windows\CurrentVersion\Uninstall"
Set "GUID="
For /f "Delims=" %%a In ('Reg Query %KEY% /k /f "*-001B-*0FF1CE}"') Do (
If Not Defined GUID Set "GUID=%%~nxa")
If %GUID:~-1% NEq } Set "GUID="
If Not Defined GUID (Echo= Unable to find Office Product & GoTo :EndIt)
If %GUID:~4,1% Equ 4 Set "IOV=10" Else (If %GUID:~4,1% Equ 2 (Set "IOV=07"
If Not Defined MOB Set "MOB=32") Else (If %GUID:~4,1% Equ 5 (Set "IOV=13"
) Else (If %GUID:~4,1% Equ 6 Set "IOV=16")))
If Not Defined IOV (Echo= Unknown Office version on your %MWB%-bit OS
GoTo :EndIt)
If %GUID:~20,1% NEq 1 Set "MOB=32"
If Not Defined MOB Set "MOB=64"
Echo=&Echo= Office 20%IOV% %MOB%-bit Product installed on a %MWB%-bit OS
:EndIt
Timeout 5 1>Nul