9

Background: I'm trying to write a simple applescript app that will launch a tcl app, but I'm getting stuck on the first part of the script.

I need to get the parent folder of the path to the applescript. When I run this code:

set LauncherPath to path to me
set ParentPath to container of LauncherPath

...I get this error:

error "Can’t get container of alias \"Macintosh HD:Users:simon:Downloads:folder with spaces:CrossFire-master:CrossFire Launcher for Mac.app:\"." number -1728 from container of alias "Macintosh HD:Users:simon:Downloads:folder with spaces:CrossFire-master:CrossFire Launcher for Mac.app:"

After reading this answer, I tried this:

set LauncherPath to path to me
set RealLauncherPath to first item of LauncherPath
set ParentPath to container of RealLauncherPath

...but I got this error:

error "Can’t get item 1 of alias \"Macintosh HD:Users:simon:Downloads:folder with spaces:CrossFire-master:CrossFire Launcher for Mac.app:\"." number -1728 from item 1 of alias "Macintosh HD:Users:simon:Downloads:folder with spaces:CrossFire-master:CrossFire Launcher for Mac.app:"

Any help or ideas much appreciated. Thanks in advance!

P.S. once I figure out the above problems, the full script will be something like this:

set LauncherPath to path to me
set RealLauncherPath to first item of LauncherPath
set ParentPath to container of RealLauncherPath
set UnixPath to POSIX path of ParentPath
set launcherCrossFire to "/usr/local/bin/wish " & UnixPath & "/CrossFire.tcl > /dev/null &" -- creat command to launch CrossFire
do shell script launcherCrossFire

UPDATE: Here's the working script incorporating the answer below:

set UnixPath to POSIX path of ((path to me as text) & "::") --get path to parent folder
set LaunchCrossFire to "/usr/local/bin/wish '" & UnixPath & "CrossFire.tcl' > /dev/null 2>&1 &" -- creat command to launch CrossFire
do shell script LaunchCrossFire -- run command
17

Try:

set UnixPath to POSIX path of ((path to me as text) & "::")
| improve this answer | |
  • Thanks, adayzdone! I posted the final code above in the original question. I have one more issue. The launcher app doesn't close after running it. Do you have any ideas for how to work around that? I thought sending the output to dev/null would stop that from happening... – Simon Nov 8 '13 at 13:06
  • Nevermind, I found the answer here. I added "/dev/null 2>&1 &" to the end of the command instead of just "/dev/null &". – Simon Nov 8 '13 at 13:34
1

You should run the script from within a 'Tell Block' like:


tell application "Finder"
get path to me

set a to container of the result
return (a as alias)
-- Or just get the name of the Parent Container like;
set b to name of a
return b
end tell
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.