একটি অ্যাপলস্ক্রিপ্টের মূল ফোল্ডারে ফাইল সন্ধান করা হচ্ছে


0

আমার কাছে একটি অ্যাপলস্ক্রিপ্ট রয়েছে যা অন্য স্ক্রিপ্টকে (এই ক্ষেত্রে একটি পার্ল স্ক্রিপ্ট) কল করে যা অ্যাপলস্ক্রিপ্টের মতো একই ফোল্ডারে থাকে।
এখন আমি স্ক্রিপ্টটি এই জাতীয় একটি ভেরিয়েবলের মধ্যে রাখার চেষ্টা করছি:

tell application "Finder"
    set scriptPath to POSIX path of (container of (path to me) as text)
    set perlScript to (do shell script "find " & quoted form of scriptPath & " -name myscript.pl")
end tell

তবে আমি যে ফলাফলটি শেল কমান্ড থেকে পেয়েছি তা ফাইলের নামের আগে দুটি স্ল্যাশ রয়েছে: /path/to/folder//myscript.pl
আমি কী ভুল করছি সে সম্পর্কে যে কেউ ধারণা করছেন?

সম্পাদনা:
যদিও আমি ডাবল স্ল্যাশটি বেশ বুঝতে পারি না তবুও আমি অনুসন্ধানককে মোটেও অনুরোধ না করে এবং নিম্নলিখিতটি না করে সমস্যার সমাধান করতে পেরেছি:

set scriptPath to POSIX path of (path to me) -- path to AppleScript
set scriptFolder to do shell script "dirname " & quoted form of scriptPath -- path to folder with AppleScript
set perlScript to (do shell script "find " & quoted form of scriptFolder & " -name myscript.pl") -- path to PerlScript

এটি করার সর্বোত্তম উপায় কিনা তা জানেন না তবে এটি আমার পক্ষে কার্যকর।

উত্তর:


2

..অ্যাপলস্ক্রিপ্ট থেকে সঠিক পথের নাম পেতে এখানে একটি উত্তর দেওয়া হয়েছে :

অ্যাপলস্ক্রিপ্টের মধ্যে স্ক্রিপ্টের বর্তমান পাথ পান এবং উপ-ডিরেক্টরিতে যুক্ত করুন

যাইহোক, আপনি যে প্রকৃত /path/to/folder//myscript.pl নির্মাণটি পেয়েছেন তা হ'ল : আপনার পার্ল স্ক্রিপ্টের সঠিক পথের নাম। 1 ম /থেকে আসছে টার্মিনাল এক থেকে আসছে container: /path/to/folder/

সুতরাং আপনার বিল্ট ফাইন্ড কমান্ড এটির মতো যা আপনি পরীক্ষা করে দেখার চেষ্টা করতে পারেন:

find ~/ -name "Documents" -print

ইঙ্গিত: সরাসরি পার্লে কাজ করুন, এটি কোনও অ্যাপলস্ক্রিপ্টের চেয়ে বহুগুণ বেশি দক্ষ।


আমি উত্তরটি দেখেছি কিন্তু এটি আমাকে একটি Can’t make quoted form of alias "Macintosh HD:path:to:folder:" into type Unicode text.ত্রুটি দেয় । আমি পার্লস্ক্রিপ্টটিকে অ্যাপলসক্রিপ্টে অন্তর্ভুক্ত করার চেষ্টা করছি কারণ অবশেষে আমি একটি পর্যবেক্ষিত ফোল্ডার সেটআপ করতে চাই ... আমি সরাসরি পার্ল দিয়ে কীভাবে এটি করব তা জানতাম না। - তবে আপনি কি /path/to/folder//myscript.plফর্মটি সঠিক বলেছেন? দু'টি টুকরো টুকরো কেন?
জানুয়ারী

এটি আসলে দুটি স্ল্যাশ নিয়ে কাজ করে! সত্য (তবে মজার) আপনার অন্যান্য সমাধান হিসাবে। আমি এটিকে অন্যভাবে সমাধান করেছি, তবে (সম্পাদনাগুলি দেখুন), আমার কাছে "সুন্দর" দেখায় (তবে এটি অন্যান্য সমস্যার মধ্যে চলে যেতে পারে কিনা তা আমি জানি না)।
জানুয়ারী
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.