2013-10-14 53 views
1

我需要自動靜默更新使用本機安裝的AIR應用程序,所以我做了這個批處理文件:否則如果批處理文件

IF EXIST "%PROGRAMFILES(X86)%" (
taskkill /IM Application.exe 
taskkill /IM adl.exe 
wmic product where name="Application" call uninstall /nointeractive 
"%HOMEPATH%\AppData\Roaming\com.application\Local Store\Application.exe" -silent -eulaAccepted -location "\%PROGRAMFILES(x86)%\" -desktopShortcut 
"%PROGRAMFILES(x86)%\Applicaion\Application.exe" 
taskkill /F /IM cmd.exe 
) ELSE (
taskkill /IM Application.exe 
taskkill /IM adl.exe 
wmic product where name="Application" call uninstall /nointeractive 
"%HOMEPATH%\AppData\Roaming\com.Application\Local Store\Application.exe" -silent -eulaAccepted -location "\%PROGRAMFILES%\" -desktopShortcut 
"%PROGRAMFILES%\Application\Application.exe" 
taskkill /F /IM cmd.exe) 

而且我測試了64位Windows,所以%PROGRAMFILES( x86)%「確實存在,並且它卸載了該軟件,但沒有安裝新的軟件,並且它在Windows上完全不工作32bit

+0

您錯誤地拼寫了'\ Applicaion \ ...' 「if」分支中的安裝行是否有助於解決問題1? –

+0

對於第二個問題,你是否嘗試過'迴應路徑o確保它實際上指向你想去的地方? –

+0

不,我只是在發佈之前更改了名稱,我總是仔細檢查名稱,100%是正確的,沒有我沒有,但@ Endordo的答案看起來完全像我需要的東西, –

回答

2
@ECHO OFF &SETLOCAL 
IF DEFINED PROGRAMFILES(X86) (SET "PROGRAMFOLDER=%PROGRAMFILES(X86)%") ELSE SET "PROGRAMFOLDER=%PROGRAMFILES%" 
taskkill /IM Application.exe 
taskkill /IM adl.exe 
wmic product where name="Application" call uninstall /nointeractive 
"%HOMEPATH%\AppData\Roaming\com.application\Local Store\Application.exe" -silent -eulaAccepted -location "\%PROGRAMFOLDER%\" -desktopShortcut 
"%PROGRAMFOLDER%\Application\Application.exe" 
taskkill /F /IM cmd.exe 
+0

非常感謝您的回答,您是否可以將-location更改爲'「%PROGRAMFOLDER%」'incase任何人都需要這樣的東西。 –