2012-02-07 5 views
6

मैक ओएसएक्स शेर में, मैं विशिष्ट फ़ाइल प्रकारों के लिए डिफ़ॉल्ट एप्लिकेशन सेट करने का प्रयास कर रहा हूं। नीचे सेब स्क्रिप्ट का उपयोग करके, हम विशिष्ट "file.abc" के लिए डिफ़ॉल्ट एप्लिकेशन सेट कर सकते हैं।मैक ओएस एक्स में विशिष्ट फ़ाइल प्रकारों के लिए डिफ़ॉल्ट एप्लिकेशन कैसे सेट करें?

tell application "System Events" 
set default application of file "/Users/test/Desktop/file.abc" to "/Applications/TextEdit.app" 
end tell 

लेकिन मैं सब filetype या "abc" के रूप में विस्तार होने फ़ाइलों के लिए डिफ़ॉल्ट रूप में एक ही आवेदन स्थापित करना चाहते हैं।

मैंने इसे पूरा करने के लिए निम्नलिखित प्रयास किए हैं। इसने <HOME>/Library/Preferences/com.apple.LaunchServices.plist में एक प्रविष्टि जोड़ा। लेकिन निर्दिष्ट एप्लिकेशन के साथ फाइलें नहीं खोली गई हैं।

defaults write com.apple.LaunchServices LSHandlers -array-add "<dict><key>LSHandlerContentTag</key><string>abc</string><key>LSHandlerContentTagClass</key><string>public.abc</string><key>LSHandlerRoleAll</key><string>com.apple.textedit</string></dict>" 

आशा है कि कोई जानता है कि मैं इसे प्राप्त करने के लिए क्या खो रहा हूं।


जवाब मिला:

defaults write com.apple.LaunchServices LSHandlers -array-add "<dict><key>LSHandlerContentTag</key><string>ugurugu</string><key>LSHandlerContentTagClass</key><string>public.filename-extension</string><key>LSHandlerRoleAll</key<string>org.videolan.vlc</string></dict>" 
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user 

उत्तर

5

शायद आप कुछ भी गलत नहीं कर रहे हैं लेकिन com.apple.launchservices फ़ाइल को बस पुनः लोड करने की आवश्यकता है। आप लॉगआउट कर सकते हैं, कुछ मिनट प्रतीक्षा कर सकते हैं या पुनरारंभ करने के लिए लॉन्च सर्विसेज को मजबूर कर सकते हैं। निम्न उदाहरण में मैं कहता हूं कि public.comma- अलग-मूल्य-पाठ फ़ाइलें (नोट: इसका मतलब यह नहीं है कि प्रत्येक CSV फ़ाइल यह सामग्री-प्रकार है) Excel के बजाय TextEdit के साथ खोली जानी चाहिए।

do shell script "defaults write com.apple.LaunchServices LSHandlers -array-add '{ LSHandlerContentType = \"public.comma-separated-values-text\"; LSHandlerRoleAll = \"com.apple.TextEdit\"; }'" 

do shell script "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user" 
+0

"com.apple.textedit" एप्लिकेशन के साथ फ़ाइल प्रकार "xyz" बनाकर स्क्रिप्ट के ऊपर प्रयास किया। लेकिन काम नहीं कर रहा है। क्या आप निश्चित रूप से दो पंक्ति स्क्रिप्ट काम करते हैं ... –

+0

मुझे यकीन है कि यह काम करता है क्योंकि हम उस स्क्रिप्ट का उपयोग कर रहे हैं। क्या आप सुनिश्चित हैं कि आप एक सही फ़ाइल प्रकार 'xyz' और बंडल पहचानकर्ता का उपयोग कर रहे हैं। सामग्री प्रकार निर्धारित करने के लिए आप एमडीएल का उपयोग कर सकते हैं और देख सकते हैं कि यह क्या लौटाता है। यहां तक ​​कि यदि एसएल निर्माता कोड समर्थन गिरा दिया गया है, तो यह संभव है कि 10.5 (या पुरानी) प्रणाली से एक फ़ाइल एलएसएचंडलर द्वारा इसका डिफ़ॉल्ट एप्लिकेशन नहीं बदल सकती है। इसे 10.6 मशीन या नए पर खोलें और फ़ाइल को दोबारा सेव करें। –

+0

आपकी तरह की मदद और समय के लिए धन्यवाद। आपके उत्तर के साथ कुछ बदलावों के साथ काम किया गया है और इसे ऊपर अपडेट किया गया है। –

0

मुझे यकीन है कि अगर आप केवल इस प्रोग्राम के रूप में करने के लिए कोशिश कर रहे हैं नहीं कर रहा हूँ। क्या आप?

अन्यथा

:

फ़ाइल पर, चुनते हैं, और "के साथ खुला" के तहत "जानकारी प्राप्त" एप्लिकेशन के नाम का चयन करें। "सभी बदलें" बटन पर क्लिक करें

+0

मैं प्रोग्रामिंग के साथ "खुले" के तहत "सभी को बदलें" करना चाहता हूं। –

+0

आपकी तरह की मदद और समय के लिए धन्यवाद। मेरे मैक में कामकाजी उत्तर ऊपर अद्यतन किया गया है। –

0

आप RCDefaultApp और उसके स्रोत कोड पर एक नज़र डालना चाहते हैं। यह एक ऐसा प्रोग्राम है जो आपको यह सेट करने देता है कि लॉन्च सेवाओं में कौन से ऐप्स किस फ़ाइल प्रकार खोले जाते हैं।