Bối cảnh: Tôi đang cố gắng viết một ứng dụng applescript đơn giản sẽ khởi chạy một ứng dụng tcl, nhưng tôi đang bị kẹt ở phần đầu tiên của kịch bản.
Tôi cần lấy thư mục cha của đường dẫn đến applescript. Khi tôi chạy mã này:
set LauncherPath to path to me
set ParentPath to container of LauncherPath
... Tôi nhận được lỗi này:
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:"
Sau khi đọc câu trả lời này , tôi đã thử điều này:
set LauncherPath to path to me
set RealLauncherPath to first item of LauncherPath
set ParentPath to container of RealLauncherPath
... nhưng tôi đã gặp lỗi này:
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:"
Bất kỳ trợ giúp hoặc ý tưởng nhiều đánh giá cao. Cảm ơn trước!
PS một khi tôi tìm ra các vấn đề trên, kịch bản đầy đủ sẽ giống như thế này:
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
CẬP NHẬT: Đây là kịch bản làm việc kết hợp câu trả lời dưới đây:
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