Передумови: Я намагаюся написати простий додаток для яблука, який запустить додаток 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:"
Будь-яка допомога чи ідеї дуже цінується. Спасибі заздалегідь!
PS Як тільки я з'ясую вищезазначені проблеми, повний сценарій буде приблизно таким:
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