संपादक को खोले बिना अपील को निष्पादित करें


12

हर बार जब मैं एक एप्स्क्रिप्ट को चलाना चाहता हूं तो संपादक पॉप अप करता है।

क्या इसे सीधे चलाने का कोई तरीका है?

जवाबों:


19

स्क्रिप्ट को कैसे सहेजा जाता है इसका मैक ओएस एक्स में कैसे काम होगा, इस पर बड़ा प्रभाव पड़ता है। ऐसा लगता है कि आपकी स्क्रिप्ट सिर्फ एक स्क्रिप्ट के रूप में सहेजी गई है और यही वह स्क्रिप्ट एडिटर है जिसके कारण आप स्क्रिप्ट को खोलते हैं।

समस्या को हल करने के लिए, AppleScript एडिटर में स्क्रिप्ट खोलें और इसे एक एप्लिकेशन के रूप में सहेजें। यह चाल के लिए चाहिए।

चरण हैं (संपादक में)

फ़ाइल> इस रूप में सहेजें> फिर आवेदन करने के लिए फ़ाइल प्रारूप सेट करें फिर सहेजें।

लिंक पाठ


अब यह संकेत देता है: "रन करने के लिए रन छोड़ें या छोड़ने के लिए दबाएं" ... लेकिन मुझे लगता है कि यह स्क्रिप्ट की गलती है! धन्यवाद
OscarRyz

1
रन चेक बॉक्स को चेक करने से प्रॉम्प्ट दिखाई देने से रुक सकता है।
ब्रूस मैकलॉड

मेरी समझ यह है कि रन ओनली चेकबॉक्स बाद में स्क्रिप्ट के संपादन की अनुमति नहीं देता है।
jtbandes

@jtbandes आह्ह्ह्ह ... जो समझ में आता है
ब्रूस

2
कृपया ध्यान दें कि Yosemite में, वर्तमान विधि फ़ाइल -> निर्यात का उपयोग करने के लिए है। AppleScript एडिटर के नवीनतम संस्करण में संवाद के रूप में कोई और अधिक सहेजें नहीं है।
आनन

7

स्क्रिप्ट को सहेजते समय, आप फ़ाइल प्रारूप ड्रॉपडाउन से "एप्लिकेशन" चुन सकते हैं; तब आप इसे चलाने में सक्षम होंगे, और आप स्क्रिप्ट को खोलने के लिए स्क्रिप्ट एडिटर पर इसे खींच पाएंगे; या आप केवल रन चुन सकते हैं, इसलिए यह संपादन योग्य संस्करण को नहीं बचाएगा।

वैकल्पिक रूप से, आप उपयोग कर सकते हैं osascript, टर्मिनल में आदेश या तो के रूप में osascript /path/to/scriptया osascript -e "a short script here"


1

आप स्क्रिप्ट को अपने ~ / लाइब्रेरी / लिपियों / खोजक / फ़ोल्डर में भी रख सकते हैं और इसे सीधे स्क्रिप्ट मेनू से चला सकते हैं।


1

MacOS हाई सिएरा 10.13 के तहत फ़ाइल / सेव नहीं है।

आपको फ़ाइल / निर्यात / फ़ाइल प्रारूप: एप्लिकेशन का उपयोग करना चाहिए फ़ाइल निर्यात करें फाइल प्रारूप


0

दूसरा तरीका है ऑटोमेटर में एक सर्विस बनाना जो osascriptफाइंडर में .scpt को चलाने के लिए कमांड का उपयोग करता है ।

(मैं अंग्रेजी में ऑटोमेटर का उपयोग नहीं कर रहा हूँ, ताकि शब्दांकन सही न हो)

  1. ऑटोमेटर लॉन्च करें
  2. फ़ाइल> नया, और सेवा का चयन करें
  3. "सेवा स्वीकार करता है:" फ़ाइल या फ़ोल्डर चुनें "
  4. "स्थान:" में "Finder.app" चुनें
  5. "AppleScript रन करें" खोजें और आइटम को दाहिने हाथ की ओर खींचें
  6. चलाएँ AppleScript बॉक्स में, निम्न कोड दर्ज करें:

    on run {input, parameters}
        tell application "Finder"
            --get the selected file
            set selectedItem to (item 1 of (get selection))
    
            --get location info (folder:file format)
            set fileLocation to (selectedItem as alias) as string
    
            --replace : with / with subroutine
            set the semifinal to my replace_chars(fileLocation, ":", "/")
    
            --remove Macintosh HD with subroutine
            set the theFinal to my replace_chars(semifinal, "Macintosh HD", "")
        end tell
        do shell script "osascript " & "\"" & theFinal & "\""
        return input
    end run
    
    on replace_chars(this_text, search_string, replacement_string)
        set AppleScript's text item delimiters to the search_string
        set the item_list to every text item of this_text
        set AppleScript's text item delimiters to the replacement_string
        set this_text to the item_list as string
        set AppleScript's text item delimiters to ""
        return this_text
    end replace_chars
    
  7. फ़ाइल> सहेजें और इसे "AppleScript रन करें" जैसा नाम दें

  8. अब आप फाइंडर में एक .scpt फ़ाइल को राइट-क्लिक करें और "रन AppleScript" चुनें और अपनी स्क्रिप्ट निष्पादित करें देखें।

संदर्भ: उप- स्रोत का स्रोत - AppleScript: आवश्यक उप-रूटीन


मैं आपके AppleScript कोड के साथ मुद्दों को देखता हूं। 1. आपके पास कोई त्रुटि से निपटने या कोड को सत्यापित करने के लिए नहीं है कि जो चुना गया है वह एक .scpt फ़ाइल है, जिसे पास करने से पहले osascriptऔर इसे संभालने के लिए कोडित नहीं किया गया है यदि एक से अधिक .scpt फ़ाइल को खोजक में चुना गया है। 2. इस तरह के कोडिंग रिगर्मल से गुजरने की बिल्कुल जरूरत नहीं है, जब कोड की निम्नलिखित सिंगल लाइन आपके द्वारा रन किए गए AppleScript एक्शन में जोड़े गए सभी चीजों को बदल देती है। do shell script "osascript " & quoted form of POSIX path of item 1 of inputअपने वर्तमान AppleScript कोड में सब कुछ बदलने के लिए यहां एक न्यूनतम उदाहरण दिया गया है: paste.ee/p/XngKA
user3439894

न्यूनतम उदाहरण में, ifस्टेटमेंट ब्लॉक को एक elseक्लॉज के साथ विस्तारित किया जा सकता है जो एक संदेश प्रदर्शित करता है कि चयनित फ़ाइल एक .scpt फ़ाइल नहीं थी। इस तरह से उपयोगकर्ता यह सोचकर नहीं रह जाता है कि यदि सेवा नहीं चलने पर वे गलती से गलत प्रकार की फ़ाइल का चयन नहीं करते तो कुछ भी क्यों नहीं हुआ।
user3439894
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.