스크립트 위치의 상위 폴더 경로 가져 오기 : Applescript HD:Users:simon:Downloads:folder with spaces:CrossFire-master:CrossFire Launcher for

배경 : tcl 앱을 시작하는 간단한 애플 스크립트 앱을 작성하려고하는데 스크립트의 첫 부분에 붙어 있습니다.

애플 스크립트 경로의 상위 폴더를 가져와야합니다. 이 코드를 실행할 때 :

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

…이 오류가 발생합니다.

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:"

이 답변을 읽은 후 시도했습니다.

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

…하지만이 오류가 발생했습니다 :

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:"

어떤 도움이나 아이디어라도 대단히 감사합니다. 미리 감사드립니다!

추신 : 위의 문제를 파악하면 전체 스크립트는 다음과 같습니다.

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

업데이트 : 아래 답변을 통합 한 작업 스크립트가 있습니다.

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


답변

시험:

set UnixPath to POSIX path of ((path to me as text) & "::")

답변

다음과 같은 ‘Tell Block’내에서 스크립트를 실행해야합니다.


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