2017-07-26 23 views
0

我試圖爲它靜默安裝IBM i訪問和Service Pack。但是,由於IBM的特性,我必須在安裝64位版本時安裝Windows C++安全更新x64 & x86。在命令行中安裝2個文件

我有一個批處理文件,將安裝或基於系統類型,但我無法得到它安裝一個接一個的64位版本。

這裏是我的代碼 - 注意爲了測試的緣故,有些東西被註釋掉了。

::@echo off 
::Check bitness, proceed accordingly 
If exist "C:\Program Files (x86)" GOTO X64 

::Setup i Access for 32-bit 
:X32 

cd %~dp0MS05SU 
start /wait msiexec /i vcredist_x86.msi /qn /norestart 
cd .. 
cd install 
cd image32 
setup.exe /S 
goto END 
::Setup i Access for 64-bit 
:X64 

cd %~dp0MS05SU 
start /wait msiexec /i vcredist_x64.msi /qn /norestart 
start /wait msiexec /i vcredist_x86.msi /qn /norestart <--- not installing after the above does. 
cd .. 
cd install 
cd image64a 
setup.exe /S 

:END 
::exit 

批處理文件工作正常,我只需要爲64位版本安裝的這兩個更新。

任何人都知道我怎麼能得到這兩個分別安裝?

編輯1:這些都是.exe文件!那個錯誤是我的。

+0

刪除「開始/等待」(3個地方)。無需啓動另一個窗口。 – RGuggisberg

+0

第一個錯誤是:如果存在C:\ Program Files(x86)作爲64位Windows上的32位應用程序的程序文件目錄,「GOTO X64」也可以位於不同的驅動器上,並且可以具有不同的名稱。更好地使用'如果不是'%ProgramFiles(x86)%「==」「goto X64'。名稱爲「ProgramFiles(x86)」的環境變量僅由64位Windows預定義。 – Mofi

+0

第二個不好的代碼是命令行'cd%〜dp0MS05SU'的兩倍。如果當前目錄位於驅動器C上,該命令將失敗:但該批處理文件位於任何其他驅動器上。如果批處理文件位於使用UNC路徑打開的網絡共享上,那麼最好使用'cd/D'%〜dp0MS05SU「'。只要默認情況下啓用了命令擴展,最好使用'pushd'%〜dp0MS05SU「'工作,即使對於UNC路徑也是如此。在命令提示符窗口'cd /?'和'pushd'中運行以獲得這兩條命令的幫助。 – Mofi

回答

0

是一個文件問題。我有錯誤的文件。能夠從EXE和繁榮中提取實際的msi。工作。

相關問題