AppleScript เป็นภาษาสคริปติ้งที่ค่อนข้างซ่อนเร้นของ Apple แต่เป็นเครื่องมือทรงพลังสำหรับโปรแกรมเมอร์มือใหม่ที่จะใช้ประโยชน์จาก ด้วย AppleScripts ชาญฉลาดบางตัวที่จัดการงานที่รบกวน เราสามารถเพิ่มประสิทธิภาพการทำงานและทำให้ความหงุดหงิดหายไปด้วยการอัตโนมัติ
AppleScript คืออะไร?

AppleScript ติดต่อกับแอปพลิเคชัน Mac ส่วนใหญ่อย่าง Finder, iTunes, QuickTime และ Mail หากคุณคุ้นเคยกับ Automator AppleScript เป็นเวอร์ชันสำหรับผู้ใช้ขั้นสูงของแอปพลิเคชันนั้น
1. สลับการแสดงไฟล์ซ่อน (Toggle Hidden Files)
บันทึกนี้เป็นแอปพลิเคชัน และคุณจะได้ปุ่มสลับที่คลิกได้เพื่อเปิดเผยไฟล์ซ่อนใน Finder
set newHiddenState to "YES"
try
set oldHiddenState to do shell script "defaults read com.apple.finder AppleShowAllFiles"
if oldHiddenState is in {"1", "YES"} then
set newHiddenState to "NO"
end if
end try
do shell script "defaults write com.apple.finder AppleShowAllFiles " & newHiddenState
do shell script "killAll Finder"
2. เปลี่ยนชื่อไฟล์เป็นชุด (Batch Rename Files)
สคริปต์นี้จะแจ้งให้ผู้ใช้ป้อนชื่อไฟล์ แล้วเปลี่ยนชื่อไฟล์ที่เลือกโดยอัตโนมัติด้วยสตริงข้อความนั้นบวกกับดัชนีที่เพิ่มขึ้น มันเพิ่มศูนย์นำหน้าสำหรับไฟล์ 1 ถึง 10 อีกด้วย
-- This code comes from https://gist.github.com/oliveratgithub/
-- Open in AppleScript Editor and save as Application
-- ------------------------------------------------------------
--this is required to break the filename into pieces (separate name and extension)
set text item delimiters to "."
tell application "Finder"
set all_files to every item of (choose file with prompt "Choose the Files you'd like to rename:" with multiple selections allowed) as list
display dialog "New file name:" default answer ""
set new_name to text returned of result
--now we start looping through all selected files. 'index' is our counter that we initially set to 1 and then count up with every file.
--the 'index' number is of course required for the sequential renaming of our files!
repeat with index from 1 to the count of all_files
--using our index, we select the appropriate file from our list
set this_file to item index of all_files
set file_name_count to text items of (get name of this_file)
--if the index number is lower than 10, we will add a preceding "0" for a proper filename sorting later
if index is less than 10 then
set index_prefix to "0"
else
set index_prefix to ""
end if
--
--lets check if the current file from our list (based on index-number) has even any file-extension
if number of file_name_count is 1 then
--file_name-count = 1 means, we extracted only 1 text-string from the full file name. So there is no file-extension present.
set file_extension to ""
else
--yup, we are currently processing a file that has a file-extension
--we have to re-add the original file-extension after changing the name of the file!
set file_extension to "." & item -1 of file_name_count
end if
--let's rename our file, add the sequential number from 'index' and add the file-extension to it
set the name of this_file to new_name & index_prefix & index & file_extension as string
end repeat
--congratulations for successfully accomplishing the batch renaming task :)
display alert "All done! Renamed " & index & " files with '" & new_name & "' for you. Have a great day! :)"
end tell
3. ปรับขนาดรูปภาพเป็นเปอร์เซ็นต์ (Scale an Image by Percentage)
สคริปต์นี้จะปรับขนาดรูปภาพเป็น 50% ของขนาดต้นฉบับ
-- Prompt for an image
set theImageFile to choose file of type "public.image" with prompt "Please select an image:"
-- Locate an output folder
set theOutputFolder to (path to desktop folder as string)
-- Launch Image Events
tell application "Image Events"
launch
-- Open the image
set theImage to open theImageFile
tell theImage
-- Determine a save name for the image
set theName to name
set theSaveName to "smlr-" & theName
-- Scale the image by 50%
scale by factor 0.5
-- Save the image to the output folder, using the save name
save as file type in (theOutputFolder & theSaveName)
-- Close the image
close
end tell
end tell
4. ปรับขนาดรูปภาพเป็นพิกเซลความกว้าง (Scale image to pixel width)
สคริปต์นี้ใช้ส่วนต้นของสคริปต์ก่อนหน้ามาก แต่ปรับขนาดเป็นความกว้างพิกเซลแทน มันจะแจ้งให้ผู้ใช้ป้อนความกว้างพิกเซลที่ต้องการ และต่อท้ายความกว้างพิกเซลนั้นไว้หน้าชื่อไฟล์ใหม่
-- Prompt for an image
set theImageFile to choose file of type "public.image" with prompt "Please select an image:"
set dialogResult to (display dialog "Enter desired pixel width:" default answer "")
try
set pixelWidth to (text returned of dialogResult) as integer
end try
-- Locate an output folder
set theOutputFolder to (path to desktop folder as string)
-- Launch Image Events
tell application "Image Events"
launch
-- Open the image
set theImage to open theImageFile
tell theImage
-- Determine a save name for the image
set theName to name
set theSaveName to (pixelWidth as text) & "-px-" & theName
-- Scale the image to pixelWidth
scale to size pixelWidth
-- Save the image to the output folder, using the save name
save as file type in (theOutputFolder & theSaveName)
-- Close the image
close
end tell
end tell
5. สำรองโฟลเดอร์ไปยังปลายทางที่เลือก (Back Up Folders to Chosen Destination)
สคริปต์ง่ายนี้ทำซ้ำโฟลเดอร์ที่เลือกไปยังปลายทางที่เลือก ซึ่งสามารถทำให้การลากและวางซับซ้อนเป็นเรื่องง่ายขึ้นเล็กน้อย
set backupTarget to (choose folder with prompt "Select a Backup Target")
set backupDestination to (choose folder with prompt "Select a Backup Destination")
tell application "Finder"
duplicate folder backupTarget to folder backupDestination
end tell
สรุป
เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ AppleScript คุณสามารถดูเอกสารของ Apple เองได้ แต่มันดีกว่าคือ MacOSXAutomation.com ซึ่งเป็นมิตรกับมือใหม่กว่า