I have a script that I want to delete when it’s done running. I’ve tried using a shell script but we’re using networked home directories so that adds a new level of complication. Right now what I’m using is this.
set f to path to me
tell application “Finder”
move item f to trash
end tell
Which works but I get an error “Could not save changes to the script “hardware.app” because of a disk error.”
So is there any way of telling it to move to the trash without error or something similar? Thanks any info.
~Joe
it works for me. are you sure you are running it as an app? try making a new script, just copy/pasting the code, save as app, quit script editor, then open the app. that worked for me.
It works when I log in local. It’s a network home problem. :? Thanks for checking for me. I didn’t think to check locally.
Perhaps you don’t have write permissions for your script? What if you try this?
local f --> this instructs AppleScript to NOT store changes in the script -- do not write to it
set f to (path to me)
tell application "Finder" to delete f
Didn’t work, it gives me an error that it can’t delete it because it’s open. I also tried using move to trash but it gives me the same error as before.
You can try this:
--> write shell script-applescript command
set f to (path to me)
set cmd to ("osascript -e 'tell application "Finder" to delete alias "" & f as text) & ""'"
set tmpFile to "/tmp/delme" as POSIX file
set fRef to (open for access tmpFile with write permission)
set eof of fRef to 0
write cmd to fRef
close access fRef
--> chmod and execute file. While it gets executed, we'll quit
do shell script "cd /tmp; chmod 755 delme; ./delme > /dev/null 2>&1 &"