BiggJohn Posted August 21, 2017 Share Posted August 21, 2017 (edited) Hi, I am a casual user of AutoIT, and can usually puzzle it out when I've made a mistake, but I have to admit I'm stumped as to why this is a code violation: Func UninstallClient() If FileExists(@WindowsDir & "\myexec\myexecexec.exe") or (@SystemDir & "\myexec\myexecexec.exe") Then If FileExists(@WindowsDir & "\myexecsetup\myexecsetup.exe") Then ShellExecuteWait("myexecsetup.exe","/uninstall",@WindowsDir & "\myexecsetup","",@SW_HIDE) Elseif FileExists(@SystemDir & "\myexec\myexecsetup.exe") Then ShellExecuteWait("myexecsetup.exe","/uninstall",@SystemDir & "\myexec","",@SW_HIDE) EndIf EndIf EndFunc ;==UninstallClient The error I get indicates I have a syntax error after adding in the nested ElseIf's. Prior to that it looked like this: Func UninstallClient() If FileExists(@WindowsDir & "\myexec\myexecexec.exe") or (@SystemDir & "\myexec\myexecexec.exe") Then If FileExists(@WindowsDir & "\myexecsetup\myexecsetup.exe") Then ShellExecuteWait("myexecsetup.exe","/uninstall",@WindowsDir & "\myexecsetup","",@SW_HIDE) if FileExists(@SystemDir & "\myexec\myexecsetup.exe") Then ShellExecuteWait("myexecsetup.exe","/uninstall",@SystemDir & "\myexec","",@SW_HIDE) EndIf EndFunc ;==UninstallClient Which just doesn't look right to me, however the script checker seems to think it's fine. Just to clarify what I'm after, I'm looking for a certain file which can be in one of two places, if it exists in either one, then launch an uninstaller which can also be on one of two (other) places. I know this is not clean and could have been written better, so helpful suggestions as to how to better accomplish this are welcome, however, foremost I'm looking to find out why the Elseif causes a syntax error. Thoughts? Thanks! John Edited August 21, 2017 by BiggJohn Link to comment Share on other sites More sharing options...
Bowmore Posted August 21, 2017 Share Posted August 21, 2017 In this case you need to put the code after Then on a new line Func UninstallClient() If FileExists(@WindowsDir & "\myexec\myexecexec.exe") Or (@SystemDir & "\CCM\ccmexec.exe") Then If FileExists(@WindowsDir & "\myexecsetup\myexecsetup.exe") Then ShellExecuteWait("myexecsetup.exe", "/uninstall", @WindowsDir & "\myexecsetup", "", @SW_HIDE) ElseIf FileExists(@SystemDir & "\myexec\myexecsetup.exe") Then ShellExecuteWait("myexecsetup.exe", "/uninstall", @SystemDir & "\myexec", "", @SW_HIDE) EndIf EndIf EndFunc ;==>UninstallClient "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning."- Rick Cook Link to comment Share on other sites More sharing options...
BiggJohn Posted August 21, 2017 Author Share Posted August 21, 2017 I guess I never realized how much formatting counted. Thank you for such a speedy and helpful reply. Cheers! John Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now