AppleScript पथ को टर्मिनल-शैली पथ में कैसे बदलें?


11

मेरे पास एक कस्टम सेवा है जो मैंने ऑटोमेटर में बनाई है (मैं ओएस एक्स 10.6.5 पर हूं)। सेवा एक AppleScript निष्पादित करता है जो बदले में एक शेल स्क्रिप्ट निष्पादित करता है। यहाँ AppleScript है:

on run {input, parameters}
    -- do shell script "/usr/bin/find " & input & " -type f -name .DS_Store -delete -print"
    display alert "Path: " & input
end run

समस्या यह है कि, सेवा द्वारा पारित मार्ग (चर में input) ऐसा दिखता है:

Macintosh HD:Users:Matthew:Documents:Programming:Apple Scripts:

और कमांड को ठीक से निष्पादित करने के लिए, पथ को देखने की आवश्यकता है:

Macintosh\ HD/Users/Matthew/Documents/Programming/Apple\ Scripts/

तो, क्या पहले रास्ते का दूसरे रास्ते पर अनुवाद करने का कोई तरीका है? मैं एक कोर फ़ंक्शन की उम्मीद कर रहा था जो इसे संभालता है। लेकिन मुझे लगता है कि regex के कुछ प्रकार / खोजने / बदलने / आदि काम करेगा? मैं HTML / CSS / Javascript / PHP से परिचित हूं, कोको / AppleScript / C के साथ नहीं। कोई भी दिशा या सुझाव बहुत अच्छा होगा!

जवाबों:


8

का उपयोग करें quoted form of the POSIX path of inputquoted form ofभाग के बिना , यह फ़ाइल नाम में मजाकिया पात्रों (रिक्त स्थान की तरह) को सही ढंग से नहीं संभालेगा। इस Apple तकनीकी देखें ।


6

ठीक है ... यह मेरे द्वारा महसूस किए जाने से अधिक आसान था। कुछ Googling के बाद, यह दिखता है कि मुझे यहाँ क्या चाहिए POSIX path ofकमांड है। यह किसी दिए गए पथ को एक यूनिक्स शैली पथ में परिवर्तित करता है, जो कि उस प्रकार का पथ है जिसे आप टर्मिनल में देखेंगे / उपयोग करेंगे। इसलिए:

POSIX path of input

मुझे एक रास्ता देता है जैसे:

/Users/Matthew/Documents/Programming/Apple Scripts/

यह इस बात को ध्यान में रखता है कि आपको /हार्ड ड्राइव के नाम के बजाय, पथ की शुरुआत में बस आवश्यकता है । हालांकि, \यह मार्ग में रिक्त स्थान से बचने (या विशेष वर्णों को संभालने) नहीं करता है। इसलिए, जैसा कि अन्य उत्तर में उल्लेख किया गया है, आपको उन स्थानों (या विशेष वर्णों) के लिए पथ को उद्धरण ( "या ') में रखने की आवश्यकता है ताकि शाब्दिक रूप से व्याख्या की जा सके। आप इसका उपयोग करके पूरा करते हैंquoted form of । यह रहा:

quoted form of the POSIX path of the input
-- gives a path like: '/Users/Matthew/Documents/Programming/Apple Scripts/'

2
/पथ की शुरुआत में बूट वॉल्यूम है। अन्य हार्ड ड्राइव अंडर हैं/Volumes/
जोश
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.