AppleScript là ngôn ngữ kịch bản (scripting language) hơi mờ nhạt của Apple, nhưng nó là công cụ mạnh mẽ cho người lập trình mới để tận dụng. Với một vài AppleScript khéo léo xử lý các tác vụ khó chịu, chúng ta có thể tăng năng suất và tự động hóa nỗi buồn của bạn.
AppleScript Là Gì?

AppleScript giao tiếp với hầu hết ứng dụng Mac như Finder, iTunes, QuickTime và Mail. Nếu bạn quen với Automator, AppleScript giống như phiên bản người dùng nâng cao của ứng dụng đó.
1. Bật/Tắt File Ẩn (Toggle Hidden Files)
Lưu script này ra dưới dạng ứng dụng, và bạn sẽ có một nút bấm chuyển đổi để hiển thị file ẩn trong 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. Đổi Tên Hàng Loạt File (Batch Rename Files)
Script này sẽ nhắc người dùng nhập tên file và sau đó tự động đổi tên file được chọn với chuỗi văn bản đó cộng với chỉ số tăng dần. Nó thậm chí hữu ích thêm số 0 dẫn đầu cho file 1 đến 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. Thay Đổi Kích Thước Ảnh Theo Phần Trăm (Scale Image By Percentage)
Script này sẽ thay đổi kích thước ảnh xuống 50% kích thước gốc.
-- 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. Thay Đổi Kích Thước Ảnh Theo Chiều Rộng Pixel (Scale Image To Pixel Width)
Điều này sử dụng phần lớn đầu của script trước nhưng thay đổi kích thước theo chiều rộng pixel. Nó sẽ nhắc người dùng chiều rộng pixel mong muốn và thêm chiều rộng pixel đó vào đầu tên file mới.
-- 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. Sao Lưu Thư Mục Đến Đích Đã Chọn (Back Up Folders To Chosen Destination)
Script đơn giản này sao chép một thư mục đã chọn đến đích đã chọn, làm cho việc copy kéo thả phức tạp bớt đau đớn.
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
Kết Luận
Để tìm hiểu thêm về AppleScript, bạn có thể xem tài liệu của Apple. Tốt hơn nữa là MacOSXAutomation.com, thân thiện hơn với người mới.