2017-03-02 21 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製品のコストを正当化することができたことがないので、これはテストされていません。

関連する問題