2017-03-02 22 views

回答

0
wmic product where "Name like '%%Outlook%%'" get Version | findstr /r /v "^$" > temp2.txt 
for /f "tokens=2 delims==" %%a (temp2.txt) (echo %%a) 

参考:Batch file to get specific installed software along with version 上面的代码来获得版本号。

+0

它显示一个错误。 “没有可用的实例” – Shruti

+0

1. wmic只显示通过Windows安装程序安装的产品。 2.在旁边注意,如果您尝试从命令行的第一行,而不是放入批处理文件,您可能无法获得所需的结果。 %%只会在没有提示的批处理文件中跳转到%。 – user2648008

0

有可能是使用注册表的方式:

@Echo Off 

If "%PROCESSOR_ARCHITECTURE:~-2%"=="86" (If Defined PROCESSOR_ARCHITEW6432 (
     Set "Key=\Wow6432Node" & Set "MWB=64") Else (Set "MWB=32" & Set "MOB=32" 
    )) Else Set "MWB=64" 
Set "KEY=HKLM\Software%KEY%\Microsoft\Windows\CurrentVersion\Uninstall" 

Set "GUID=" 
For /F "Delims=" %%A In ('Reg Query %KEY% /K /F "*-001A-*0FF1CE}"') Do (
    If Not Defined GUID Set "GUID=%%~nxA") 
If Not "%GUID:~-1%"=="}" Set "GUID=" 
If Not Defined GUID (Echo= Unable to find Outlook 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 Outlook version on your %MWB%-bit OS 
    GoTo EndIt) 

If Not Defined MOB Set "MOB=32" 
If %GUID:~20,1% Equ 1 Set "MOB=64" 

Echo=&Echo= Outlook 20%IOV% %MOB%-bit Product installed on a %MWB%-bit OS 

:EndIt 
Timeout 5 1>Nul 

这还没有测试过,因为我从来没有能够证明任何Microsoft Office产品的成本。

相关问题