2009 से AppleScript कैसे बदल सकता है, के आपके विशिष्ट प्रश्न का उत्तर देने के लिए, मैं तब से आज तक विकसित किए गए असंख्य तरीकों की कोशिश नहीं करूंगा और अनुमान लगा सकता हूं (और मैं 2009 या उससे पहले भाषा के दस्तावेज नहीं खोज सका), लेकिन मैं इसे उजागर कर सकता हूं वर्तमान सूत्रीकरण जैसा कि आपके कोड स्निपेट से संबंधित है। अर्थात्, आपकी स्क्रिप्ट त्रुटि को फेंक रही है, जिसमें सिंटैक्स त्रुटि है set folder "Documents" of home।
जिस तरह से setकमांड को परिभाषित किया गया है (वर्तमान संस्करण) AppleScript है:
[के लिए] एक या अधिक चर के लिए एक या एक से अधिक मूल्यों के [मानसिक ] असाइन करें ।
इसमें निम्नलिखित सिंटैक्स है:
अभिव्यक्ति के लिए चर चर सेट करें
variablePatternएक चर या चर की सूची का नाम कहां है, और expressionउस मान के लिए मूल्यांकन करता है जिसे चर को सौंपा जाएगा।
(नोट: AppleScript लैंग्वेज गाइड बताता है कि घोषणा के बाद का आधा हिस्सा यानी to %expression%वैकल्पिक है। हालाँकि, मैं एक ऐसे उदाहरण के बारे में नहीं सोच सकता जिसके लिए यह सच है, और, जहाँ तक मुझे पता है, हमेशा पूर्ण सिंटैक्स का पालन setकरना चाहिए। ऊपर उल्लिखित है। शायद यह उन तरीकों में से एक है जो भाषा बदल गई है ...?)
तो, सीधे शब्दों में कहें, setहमेशा एक चीज का मूल्य लेने के लिए और इसे दूसरे को सौंपने के लिए उपयोग किया जाता है , ठीक उसी तरह जैसे आपके कोड की सभी अन्य रेखाएं स्निपेट करती हैं।
निम्नलिखित पंक्ति में:
set folder "Documents" of home
हमारे पास केवल आधी घोषणा है: एक वस्तु (एक फ़ोल्डर, इस मामले में) प्रदान करके कमांड शुरू होती है जो एक नया मान लेना चाहता है, लेकिन फिर यह बताने के लिए नहीं जाता है कि नया मान क्या होना चाहिए।
इसके अलावा, folderऑब्जेक्ट आमतौर पर एक ऐसा नहीं है जिसे स्वयं मान निर्दिष्ट किए जा सकते हैं। कोई आदेश नहीं दे सकता:
set folder "Documents" of home to desktop
हालांकि, एक कर सकते हैं आवंटित folderवस्तु कुछ और करने के लिए, इस तरह के एक चर या की तरह एक मौजूदा संपत्ति के मूल्य, के रूप में targetएक की संपत्ति Finder window:
set the target of the front Finder window to folder "Documents" of home
setआदेश अभिव्यक्ति के मूल्य का उपयोग करने के निर्देश देते हुए AppleScript है folder "Document" of home(जो हार्ड ड्राइव पर एक स्थान संदर्भ का मूल्यांकन) और के लिए असाइन करें targetकी संपत्ति front Finder window(जो जो निर्देशिका खिड़की में दिखाया गया है नियंत्रित करता है)। जैसा कि आप अपेक्षा करते हैं, यह सक्रिय खोजक विंडो की निर्देशिका को होम निर्देशिका से दस्तावेज़ निर्देशिका में स्विच करने का कारण बनता है ।
यह एक अप्रत्याशित वांछित परिणाम की तरह लगता है एक भी करने के लिए इन कार्यों के सभी आवेदन के रूप में खोजक खिड़की का मतलब है कि पूर्ववर्ती लाइनों कुछ हद तक ज़रूरत से ज़्यादा हैं: खोलने के लिए कोई ज़रूरत नहीं होगा होम फ़ोल्डर और उसकी गुण सेट ( toolbar visible, sidebar width, current viewऔर bounds), उसके बाद ही निर्देशिका बदलने के लिए और इन सभी गुणों को नए मूल्यों पर सेट करें।
इसलिए मुझे लगता है कि सबसे अधिक संभव समाधान उनके उत्तर में @ wch1zpink द्वारा इंगित किया गया है, जो कि दस्तावेज़ फ़ोल्डर के स्थान पर एक नई खोजक विंडो खोलना है ।
मैंने इसे ठीक उसी तरह चुना, जिस तरह स्क्रिप्ट ने होम फोल्डर के साथ ऐसा किया था :
open folder "Documents" of home
जो समस्या रेखा को पूरी तरह बदल देता है। इसलिए परिणामस्वरूप स्क्रिप्ट में दो खिड़कियों के निर्माण और हेरफेर करने के तरीके में एक मनभावन समरूपता है:
tell application "Finder"
activate
close every window
open home
set toolbar visible of the front Finder window to true
set the sidebar width of the front Finder window to 135
set the current view of the front Finder window to column view
set the bounds of the front Finder window to {36, 116, 511, 674}
open folder "Documents" of home
set toolbar visible of the front Finder window to false
set the current view of the front Finder window to flow view
set the bounds of front Finder window to {528, 116, 1016, 674}
select the last Finder window
end tell
openआदेश, जाहिर है, एक नया खोलता खोजक निर्दिष्ट स्थान पर खिड़की, लेकिन यह भी है कि नया खोजक खिड़की सामने खोजक खिड़की ।
इससे, यह देखना आसान है कि setबयानों का पहला ब्लॉक एक खोजक विंडो के लिए है; और दूसरा ब्लॉक दूसरे के लिए है।
उम्मीद है, मैंने आपकी क्वेरी को सीधे संबोधित किया है और एक स्पष्टीकरण प्रदान किया है जो समझ में आता है। अगर मैंने जो कुछ भी लिखा है, तो मुझे क्षमा करें, जो मुझे लगता है कि संरक्षक है: मैंने यह मानने से बचने की कोशिश की कि आप क्या करते हैं और AppleScript के बारे में नहीं जानते हैं, इस बात के सबूत के बावजूद कि आप स्पष्ट रूप से कोई नौसिखिया नहीं हैं (सुपर यूजर पर 2.5K प्रतिष्ठा)। दूसरी ओर, अगर मैंने जो कुछ भी लिखा है वह अस्पष्ट या खराब तरीके से समझाया गया है, तो मुझे बताएं, और मैं खुशी से या उपयुक्त रूप में फिर से शब्द स्पष्ट कर दूंगा।
set folder "Documents" of homeआपके प्रश्न से कोड की प्राथमिक वजह , त्रुटियां हैं, क्योंकि यह वाक्य-रचना सही नहीं है! इसके सिंटैक्स और उदाहरणों के लिए AppleScript लैंग्वेज गाइड में कमांड पर एक नज़र डालें !set