ऑटोमेटर आगे बढ़ने से पहले एक काम खत्म करता है?


2

मेरे पास कई एपलस्क्रिप्ट कमांड चल रहे हैं जो मैं क्रमिक रूप से घटित करना चाहता हूं। उदाहरण के लिए, मेरे पास एक empty trashकमांड है, फिर एक shut downकमांड है। जब मैं स्क्रिप्ट चलाता हूं, तो कंप्यूटर कुछ फ़ाइलों से अधिक खाली होने से पहले ही बंद हो जाता है।

मैं यह कैसे सुनिश्चित करूं कि ऑटोमेटर आगे बढ़ने से पहले एक कार्य पूरा करे?

मेरे पास टाइम मशीन का उपयोग करने के लिए एक टर्मिनल कमांड भी है। मैं यह भी चाहूंगा कि शट डाउन से पहले एक खत्म हो जाए।


मुझे लगता है कि empty trashआम तौर पर स्क्रिप्ट को ब्लॉक करना चाहिए। और अगर यह बंद हो जाता है क्योंकि कुछ फ़ाइल उपयोग में है, तो त्रुटि के कारण वर्कफ़्लो बंद हो जाना चाहिए। क्या आप पूरी स्क्रिप्ट या वर्कफ़्लो शामिल कर सकते हैं? आप tmutil startbackup -bबैकअप के लिए उपयोग कर सकते हैं ।
लैरी

जवाबों:


1

दुर्भाग्य empty trashसे एक संदेश खोजक को भेजा जाता है, और, ऑटोमेकर के दृष्टिकोण से, संदेश भेजे जाने पर कार्य समाप्त हो जाता है।

में इस बातचीत वहाँ एक संभव समाधान है। आपको कूड़े के आकार पर एक चेक के साथ अपने एप्सस्क्रिप्ट कार्य को संशोधित करना होगा:

tell application "Finder"
    set first_size to ""
    set second_size to " "
    set trash_folder to (path to trash folder)

    empty trash

    repeat until first_size is equal to second_size
        set first_size to size of (info for trash_folder) as integer
        delay 2
        set second_size to size of (info for trash_folder) as integer
    end repeat
end tell

इस तरह से कार्य समाप्त नहीं होगा जब तक कि कचरे का आकार कम नहीं हो जाता है।

यदि आप टाइम मशीन बैकअप टर्मिनल कमांड के लिए tmutil का उपयोग करते हैं , तो कमांड के -bलिए एक विकल्प startbackupहै जो स्क्रिप्ट को तब तक इंतजार करने के लिए कहता है जब तक कि बैकअप समाप्त होने से पहले समाप्त न हो जाए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.