मैंने एक AppleScript लिखा है जो मुझे किसी विशेष फ़ाइल का बैकअप लेने देता है। स्क्रिप्ट AppleScript संपादक के अंदर ठीक चलता है: यह वही करता है जो इसे पूरी तरह से करना चाहिए। अब तक सब ठीक है।
अब मैं इस स्क्रिप्ट को समयबद्ध अंतराल पर चलाना चाहूंगा। इसलिए मैं इसे बनाने के लिए लॉन्चर और .plist का उपयोग करता हूं। यहीं से मुसीबत शुरू होती है।
- लिपि को लॉन्च अंतराल द्वारा सेट अंतराल पर लोड किया जाता है
- AppleScript एडिटर (जब खुला) अपनी विंडो (उस स्क्रिप्ट के साथ) अग्रभूमि पर लाता है, लेकिन कोई कोड निष्पादित नहीं होता है
- जब AppleScript संपादक नहीं चल रहा है, तो कुछ भी नहीं हो रहा है
कोई विचार क्यों यह काम नहीं कर रहा है?
-
संपादन के बाद (डैनियल बेक के सुझावों के अनुसार) मेरी पलक अब इस तरह दिखती है:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<false/>
<key>Label</key>
<string>com.opera.autosave</string>
<key>ProgramArguments</key>
<array>
<string>osascript</string>
<string>/Users/user_name/Library/Scripts/opera_autosave_bak.scpt</string>
</array>
<key>StartInterval</key>
<integer>30</integer>
</dict>
</plist>
और AppleScript मैं चलाने की कोशिश कर रहा हूँ:
on appIsRunning(appName)
tell application "System Events" to (name of processes) contains appName
end appIsRunning
--only run this script when Opera is running
if appIsRunning("Opera") then
set base_path to "user_name:Library:Preferences:Opera Preferences:sessions:"
set autosave_file to "test.txt"
set autosave_file_old to "test_old.txt"
set autosave_file_older to "test_older.txt"
set autosave_file_oldest to "test_oldest.txt"
set autosave_path to base_path & autosave_file
set autosave_path_old to base_path & autosave_file_old
set autosave_path_older to base_path & autosave_file_older
set autosave_path_oldest to base_path & autosave_file_oldest
set copied_file to "test copy.txt"
set copied_path to base_path & copied_file
tell application "Finder"
duplicate file autosave_path
delete file autosave_path_oldest
set name of file autosave_path_older to autosave_file_oldest
set name of file autosave_path_old to autosave_file_older
set name of file copied_path to autosave_file_old
end tell
end if
plist
की गई सामग्री को पोस्ट करना उपयोगी होगा ?