2013-10-14 54 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任何人都需要这样的东西。 –