यदि आप बस स्पॉटलाइट एक्शन के लिए एक फ़ाइल नाम देना चाहते हैं
फ़ाइल का नाम एक्शन से पास करने के लिए a चर सेट करें कार्य
- उपरोक्त कार्रवाई को अनदेखा करने के लिए स्पॉटलाइट एक्शन सेट करें।
यह शीर्षक पट्टी पर राइट क्लिक करके और मेनू का उपयोग करके किया।
- खोज पाठ फ़ील्ड में चर टोकन को खींचें और छोड़ें।
यह एक अद्यतन है
बाद की पुनर्प्राप्ति के लिए गुणों को संग्रहीत करने के लिए ऑटोमेकर क्रियाओं और एप्सस्क्रिप्ट का उपयोग करना
यह विचार यहाँ पहली कार्रवाई है जो दस्तावेज़ फ़ोल्डर में एक एप्सस्क्रिप्ट फाइल लिखता है।
स्क्रिप्ट का उपयोग हमारे द्वारा प्राप्त की जाने वाली जानकारी को संग्रहीत करने के लिए किया जाएगा और फिर बाद में इसे अंतिम Applescript कार्रवाई में पुनः प्राप्त किया जाएगा।
हम ऐसा इसलिए करते हैं क्योंकि हमें अंतिम स्क्रिप्ट को कई बिट्स सूचनाओं को पारित करने की आवश्यकता होती है। जो हम ऑटोमेटर में सामान्य चर के साथ नहीं कर सकते हैं।
क्रियाएँ।
- रन अप्पस्क्रिप्ट: दस्तावेज़ फ़ोल्डर में एक भंडारण स्क्रिप्ट लिखें
लिपी।
set script_text to MakeScript()
my RunMaker(script_text)
on RunMaker(script_text)
set file_path to (path to documents folder as Unicode text) & "MyProperties.scpt"
set file_path to POSIX path of file_path as string
store script script_text in file_path with replacing
end RunMaker
on MakeScript()
script
property theBrokenAliasFolderPath : ""
property broken_alias_file_Paths : {}
property theOriginalFolderPath : ""
property Original_file_Paths : {}
property SearchfileNames : {}
end script
end MakeScript
2, फाइंडर आइटम के लिए पूछें: यह टूटे हुए उपनाम के फ़ोल्डर के लिए है।
- इनपुट को इग्नोर करने के लिए सेट करें
- अपने प्रारंभ को अपने टूटे हुए अन्य उपनाम फ़ोल्डर में सेट करें।
- अपना प्रकार सेट करें: फ़ोल्डर
3, रन एपलस्क्रिप्ट:
- भंडारण स्क्रिप्ट फ़ाइल में किसी संपत्ति के टूटे हुए उपनाम फ़ोल्डर पथ को लिखता है।
- अगली कार्रवाई के लिए पथ पर जाएं
(लेखन बहिष्कार स्टोरेज फ़ाइल स्क्रिप्ट लोड करने वाली एक्शन एपस्क्रिप्ट द्वारा किया जाता है। यह एक प्रकार का संस्करण होगा। यह इसके संस्करण में गुणों को बदल देगा और पुराने के स्थान पर फिर से फाइल को फिर से लिखना होगा)
--WRITE OUT BROKEN ALIAS FOLDER PATH
on run {input, parameters}
set file_path to (path to documents folder as Unicode text) & "MyProperties.scpt" as alias
set script_text to load script file_path
set theBrokenAliasFolderPath of script_text to (POSIX path of (item 1 of input))
my RunMaker(script_text)
return input
end run
on RunMaker(script_text)
set file_path to (path to documents folder as Unicode text) & "MyProperties.scpt"
set file_path to POSIX path of file_path as string
store script script_text in file_path with replacing
end RunMaker
4, फ़ोल्डर सामग्री प्राप्त करें:
- कार्रवाई "टूटी हुई उर्फ फ़ोल्डर पथ" प्राप्त करती है और फ़ोल्डर की सभी सामग्री प्राप्त करती है।
5, फ़िल्टर खोजक आइटम:
- आइटमों को फ़िल्टर करें, ताकि उनमें केवल उर्फ फाइलें हों।
सभी: प्रकार: अन्य: उपनाम है
- अगली कार्रवाई के लिए सूची को पास करें
6, रन एपलस्क्रिप्ट:
भंडारण स्क्रिप्ट फ़ाइल में एक संपत्ति के टूटे हुए उर्फ PATHS लिखता है।
on run {input, parameters}
set file_path to (path to documents folder as Unicode text) & "MyProperties.scpt" as alias
set script_text to load script file_path
set broken_alias_file_Paths of script_text to input
my RunMaker(script_text)
return input
end run
on RunMaker(script_text)
set file_path to (path to documents folder as Unicode text) & "MyProperties.scpt"
set file_path to POSIX path of file_path as string
store script script_text in file_path with replacing
end RunMaker
7, फाइंडर आइटम के लिए पूछें: यह ऑरिजनल फाइल फोल्डर के लिए है।
- इनपुट को इग्नोर करने के लिए सेट करें
- अपनी शुरुआत को अपने मूल फ़ाइल फ़ोल्डर में सेट करें।
- अपना प्रकार सेट करें: फ़ोल्डर
8, रन एप्सस्क्रिप्ट:
भंडारण स्क्रिप्ट फ़ाइल में एक संपत्ति के लिए मूल फ़ाइलें फ़ोल्डर लिखता है।
on run {input, parameters}
set file_path to (path to documents folder as Unicode text) & "MyProperties.scpt" as alias
set script_text to load script file_path
set theOriginalFolderPath of script_text to (POSIX path of (item 1 of input))
my RunMaker(script_text)
return input
end run
on RunMaker(script_text)
set file_path to (path to documents folder as Unicode text) & "MyProperties.scpt"
set file_path to POSIX path of file_path as string
store script script_text in file_path with replacing
end RunMaker
9, रन एपलस्क्रिप्ट:
यह संग्रहण स्क्रिप्ट से जानकारी पुनर्प्राप्त करता है।
यह मृत उर्फ फाइलों के रास्तों की सूची लेगा।
मूल फ़ाइल फ़ोल्डर में एक मिलान फ़ाइल आज़माएं और ढूंढें। यह सभी मैचों को देखेगा लेकिन उपनामों को नजरअंदाज करेगा।
पुरानी एलियास फाइल को हटा दें (पहले यह उर्फ फाइल की जांच कर रहा है)
फ़ोल्डर में एक सिमिलिंक बनाएं जो पुराना उपनाम मिला मिलान वाली फ़ाइल से था।
केवल अन्य फ़ाइलों को हटा दिया जाना चाहिए। यदि कोई मिलान फ़ाइल नहीं मिली है, तो अन्य फ़ाइल नहीं हटाई जाएगी। और न ही कोई सिमिलिंक बनाया जाएगा।
।
set file_path to (path to documents folder as Unicode text) & "MyProperties.scpt" as alias
set theScript to load script file_path
--choose a search folder
set searchPath to quoted form of theOriginalFolderPath of theScript
set folderPath to quoted form of theBrokenAliasFolderPath of theScript
set input to broken_alias_file_Paths of theScript
repeat with i from 1 to count of items of input
set this_item to item i of input
set aliasPath to this_item
#Get the the file name
set theFileName to "\\\"" & (do shell script "basename " & quoted form of (POSIX path of (this_item))) & "\\\"" as string
log theFileName
#search the searchPath for a matching file with the same name.
#NOTE: this will find all files with he same name. So We use last paragraph to get what should be the first one it finds.
set theOrigFilePath to paragraphs of (do shell script "mdfind -onlyin " & searchPath & " kMDItemFSName == \"" & theFileName & "\"")
if theOrigFilePath is not quoted form of "" then
repeat with i from 1 to count of items in theOrigFilePath
set this_item to item i of theOrigFilePath
log this_item
tell application "Finder"
#make sure we are pointing to an alais that will be deleted and not another symlink file. Otherwise the original file will be deleted.
set theKind to kind of ((POSIX file this_item) as alias)
if theKind is not equal to "Alias" then
set this_item to quoted form of (item i of theOrigFilePath)
my symLink(aliasPath, this_item)
end if
end tell
end repeat
end if
end repeat
on symLink(aliasPath, aOrigFilePath)
#move to trash the old alias file
set theOldAlias to aliasPath
tell application "Finder"
#make sure we are pointing to an alais that will be deleted and not another symlink file. Otherwise the original file will be deleted.
set theKind to kind of theOldAlias
set theNewFilePath to (POSIX path of (aliasPath)) as string
if theKind is equal to "Alias" then
delete theOldAlias
log "ln -s " & aOrigFilePath & space & (quoted form of theNewFilePath)
#create the symlink
do shell script "ln -s " & aOrigFilePath & space & (quoted form of theNewFilePath)
end if
end tell
end symLink
पहले परीक्षण करें .. अपने जोखिम पर उपयोग करें और यह सब ..