স্ক্রিপ্ট অবস্থানের প্যারেন্ট ফোল্ডারের পাথ পান: অ্যাপলস্ক্রিপ্ট


9

পটভূমি: আমি একটি সহজ অ্যাপ্লিকেশন অ্যাপ্লিকেশন লেখার চেষ্টা করছি যা একটি টিসিএল অ্যাপ্লিকেশন চালু করবে, তবে আমি স্ক্রিপ্টের প্রথম অংশে আটকে যাচ্ছি।

আমাকে অ্যাপ্লিক্রিপ্টের পাথের প্যারেন্ট ফোল্ডারটি পাওয়া উচিত। যখন আমি এই কোডটি চালাই:

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

উত্তর:


17

চেষ্টা করুন:

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

ধন্যবাদ, আদায়জডোন! আমি মূল প্রশ্নে উপরের চূড়ান্ত কোড পোস্ট করেছি। আমার আরও একটি ইস্যু আছে। লঞ্চার অ্যাপটি চালানোর পরে বন্ধ হয় না। কীভাবে এই চারপাশে কাজ করবেন তার জন্য আপনার কোনও ধারণা আছে? আমি ভেবেছিলাম দেব / নালকে আউটপুট পাঠানো এটি হওয়া থেকে বিরত থাকবে ...
সাইমন

কিছু নয়, আমি উত্তরটি এখানে পেয়েছি । আমি "" / dev / null 2 ​​"পরিবর্তে কমান্ডের শেষে" / dev / null 2> & 1 & "যুক্ত করেছি added
সাইমন

1

আপনার 'স্ক্রিন ব্লক' এর মতো স্ক্রিপ্টটি চালানো উচিত:


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
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.