ทุกครั้งที่ฉันต้องการเรียกใช้ applescript บรรณาธิการจะปรากฏขึ้น
มีวิธีเรียกใช้โดยตรงหรือไม่
ทุกครั้งที่ฉันต้องการเรียกใช้ applescript บรรณาธิการจะปรากฏขึ้น
มีวิธีเรียกใช้โดยตรงหรือไม่
คำตอบ:
วิธีบันทึกสคริปต์มีผลอย่างมากต่อการทำงานใน Mac OS X ดูเหมือนว่าสคริปต์ของคุณจะถูกบันทึกเป็นสคริปต์และนั่นคือสิ่งที่ทำให้ตัวแก้ไขสคริปต์เปิดทุกครั้งที่คุณเปิดสคริปต์
เพื่อแก้ปัญหาให้เปิดสคริปต์ในตัวแก้ไข AppleScript และบันทึกเป็นแอปพลิเคชัน ที่ควรทำเพื่อหลอกลวง
ขั้นตอนคือ (ในตัวแก้ไข)
ไฟล์> บันทึกเป็น> จากนั้นตั้งค่ารูปแบบไฟล์เป็นแอปพลิเคชันจากนั้นบันทึก
เมื่อบันทึกสคริปต์คุณสามารถเลือก "แอปพลิเคชัน" จากดร็อปดาวน์รูปแบบไฟล์; จากนั้นคุณจะสามารถเรียกใช้และคุณจะยังสามารถลากไปยังตัวแก้ไขสคริปต์เพื่อเปิดสคริปต์ หรือคุณสามารถเลือก Run Only เพื่อไม่ให้บันทึกเวอร์ชันที่แก้ไขได้
หรือคุณสามารถใช้osascript
คำสั่งในเทอร์มิไม่ว่าจะเป็นหรือosascript /path/to/script
osascript -e "a short script here"
คุณยังสามารถวางสคริปต์ในโฟลเดอร์ ~ / Library / Scripts / Finder / และเรียกใช้โดยตรงจากเมนูสคริปต์
ภายใต้ macOS High Sierra 10.13 ไม่มีไฟล์ / บันทึกเป็น
อีกวิธีหนึ่งคือการสร้างบริการใน Automator ซึ่งใช้osascript
คำสั่งเพื่อเรียกใช้ .scpt ใน Finder
(ฉันไม่ได้ใช้ Automator เป็นภาษาอังกฤษดังนั้นข้อความอาจไม่ถูกต้อง)
ในกล่องเรียกใช้ AppleScript ให้ป้อนรหัสต่อไปนี้:
on run {input, parameters}
tell application "Finder"
--get the selected file
set selectedItem to (item 1 of (get selection))
--get location info (folder:file format)
set fileLocation to (selectedItem as alias) as string
--replace : with / with subroutine
set the semifinal to my replace_chars(fileLocation, ":", "/")
--remove Macintosh HD with subroutine
set the theFinal to my replace_chars(semifinal, "Macintosh HD", "")
end tell
do shell script "osascript " & "\"" & theFinal & "\""
return input
end run
on replace_chars(this_text, search_string, replacement_string)
set AppleScript's text item delimiters to the search_string
set the item_list to every text item of this_text
set AppleScript's text item delimiters to the replacement_string
set this_text to the item_list as string
set AppleScript's text item delimiters to ""
return this_text
end replace_chars
ไฟล์> บันทึกและตั้งชื่อเช่น "Run AppleScript"
ตอนนี้คุณสามารถคลิกขวาที่ไฟล์. scpt ใน Finder และเลือก "Run AppleScript" แล้วดูสคริปต์ของคุณ
การอ้างอิง: แหล่งที่มาของรูทีนย่อย - AppleScript: Essential Sub-Routines
osascript
และไม่ได้เข้ารหัสเพื่อจัดการหากมีไฟล์. scpt มากกว่าหนึ่งไฟล์ใน Finder 2. ไม่จำเป็นต้องมีวิธีการเข้ารหัสที่ซับซ้อนเช่นนี้เมื่อโค้ดบรรทัดเดียวต่อไปนี้แทนที่ทุกสิ่งที่คุณเพิ่มลงในการดำเนินการ Run AppleScript do shell script "osascript " & quoted form of POSIX path of item 1 of input
นี่เป็นตัวอย่างเล็กน้อยที่จะแทนที่ทุกอย่างในรหัส AppleScript ปัจจุบันของคุณ: paste.ee/p/XngKA
if
บล็อกคำสั่งสามารถขยายได้ด้วยส่วนelse
คำสั่งที่แสดงข้อความว่าไฟล์ที่เลือกไม่ใช่ไฟล์. scpt ด้วยวิธีนี้ผู้ใช้จะไม่ถูกทิ้งให้สงสัยว่าทำไมไม่มีอะไรเกิดขึ้นถ้าพวกเขาไม่เห็นว่าพวกเขาเลือกไฟล์ผิดประเภทโดยไม่ตั้งใจเมื่อใช้บริการ