Here is my take on what I understood you are trying to accomplish. The code is long winded on purpose. All you need to do is copy the code to the Applescript Editor, make any changes you want and save it as an application. # # STEP 1: locate and confirm zip file exists # # This is long winded on purpose. It is meant to save the user some scrolling and # and a click... Isn't this what computers are for to save time? :) # # Zip file name set zipname to "Deliverable.zip" # Locate the zip file set zippath to POSIX path of (choose folder) log zippath set qzippath to quoted form of zippath log qzippath set zipfile to (zippath & zipname) set qzipfile to quoted form of (zippath & zipname) log qzipfile # Check for the file... Use either test not both :) try # using shell test - case sensetive do shell script "test -f " & qzipfile # using native test - doesn't like quoted forms and case insensetive... POSIX file zipfile as alias on error display dialog "ERROR: Zip file was not found at selected folder." as text ¬ buttons {"OK"} with icon caution ¬ with title "Alert" return end try # # STEP 2: Zip found. Unzip it # try # Add " -d Deliverable" at the end to force directory # unzip -o to force overwrite for testing.... do shell script "cd " & qzippath & "; unzip -o " & zipname on error eStr display dialog "ERROR: Failed to unzip file. Message returned was, " & ¬ return & return & eStr as text ¬ buttons {"OK"} with icon caution ¬ with title "Unzip Error" return end try # # STEP 3: Run script # set dpath to (zippath & "Deliverable/") log dpath set qdpath to quoted form of dpath log qdpath try do shell script "cd " & qdpath & "; sh ./run.sh" on error eStr display dialog "ERROR: Failed to launch script. Message returned was, " & ¬ return & return & eStr as text ¬ buttons {"OK"} with icon caution ¬ with title "Deliverable Script Launch" return end try