[Mac OS X] Automator-惱人的重複工作小幫手:初級班





身為一個擁有蘋果基本套裝(Macbook,iPad,iPhone)的果粉來說,蘋果電腦作業系統(Mac OS X)介面漂亮簡潔、操作簡單,這點絕對是毋庸置疑的。不過雖然說操作簡單,但其實內建了許多強大功能的軟體,今天介紹的主角Automator就是其中之一。這時候就會有人問說:所以Automator到底是什麼?它可以幫助我什麼?它可以吃嗎?其實Automator是一款可以藉由滑鼠點擊、拖拉等操作,將一系列指定工作組合在一起自動執行的軟體。如果以線上遊戲來比喻的話,Automator就是遊戲中的自動練功外掛,自動幫我們執行一系列重複無聊的走路、打怪、賣裝 (在現實世界用這個不會被GM抓,倒是會幫你賺到金錢,恩…我說的是時間)。

Automator程式庫內建有許多的指令,將常用到的功能包裝成一個可以拖拉的程式積木,這些指令橫跨不同種類的內建軟體(Finder,Safari,photo,行事曆…),以及第三方軟體(office,pdf,photoshop)。假設今天有一千張照片需要加上浮水印,一張張慢慢處理的話,根本處理不完。當然沒有人會這麼做,至少會上網找個相關的軟體。不過Automator的優勢之一就是它是內建的,且可一套軟體執行不同種類的工作。不必像是上網下載軟體一樣,害怕電腦中毒,在蘋果如日中天的今天,沒有不可能只有想不想,連Mac都會中勒索病毒了呢。此外一般這種軟體功能比較單一,如果想要自動化額外的瑣碎工作,例如從不同資料夾搬移照片、將已上浮水印的照片集中或分別放到不同資料夾的話,網路上載的通常就沒法做到了。

不過Automator也不是萬能,不是所有工作都有現成的指令,除非透過AppleScript,以撰寫程式碼的方式完成。此外這種拖拉指令的方式其實跟寫程式相似,只是用較簡單的方式來實踐邏輯,所以難免會有邏輯錯誤,也就是俗稱的臭蟲(bug)。當執行的結果與預期不符時,就要進入debug地獄,不斷的測試、修改。

所以總歸到底,在開發自動化流程之前,需要對問題先進行評估。看看建立自動化工作流程花的時間,是不是比原本重複性工作所花的時間來得多,值不值得花時間去開發?不過,如果是沒有程式撰寫經驗,但有興趣想練習自己寫程式的話,Automator也是個不錯的練習工具之一(Scratch可能更適合);而對於有程式撰寫經驗的人來說,則可採用AppleScript,以寫程式碼的方式來完成自動化工作流程。因為當邏輯開始複雜的時候,沒辦法單純用拖拉的方式進行開發,不易閱讀也不易找問題。

AppleScript不屬於此篇的範圍,留待下一篇再做介紹。此篇就用「照片加入浮水印」為例,實際解說Automator到底要怎麼靠拖拉的方式,來自動化工作流程。


Automator自動化「照片加入浮水印」工作流程

首先,在這個範例中,沒辦法一步就達到我們想要的效果,需要轉個彎。因為在Automator中沒有現成的指令可以直接將影像檔加上浮水印。但為了維持我們這篇的宗旨,只靠拖拉的方式完成自動化,所以山不轉路轉,我們先透過轉換成PDF,在其中加入浮水印後,再轉回影像檔達成我們要的效果。

Step1. 在右上角開啟Spotlight並搜尋”Automator”

Step2. 點選”服務”以後,按”選擇”鈕來新增文件
不同文件類型,在完成工作流程拖拉,並儲存以後,可以執行的地方不一樣。以今天選擇”服務”的例子來說,如右上紅框內,我可以在檔案右鍵選單最下面的”服務”中找到我儲存的工作流程,點下去後就可以自動執行相關的指令。

Step3. ”服務接收所選的”--->”影像檔案”;”位置”--->”Finder”

Step4. 把”從影像製作新的PDF”指令拖到右邊的流程版中,並設定相關參數
這步我們要指定影像轉成PDF檔後,檔案存放的位置。我們要透過選擇”新增變數”這邊來指定我們想要儲存的資料夾,如果不透過這步的話,新增的PDF檔案都會很獵奇的出現在桌面上,而不是你指定的位置。我們可以在桌面新建一個資料夾來暫存,因為等工作流程結束後,可以把這些PDF檔刪除。至於輸出檔名以及頁面大小設定就看個人需求。

Step5. 將”製作帶有浮水印的PDF文件”拖入上一個流程的下方,並設定相關參數
這邊就可以加入浮水印的影像檔,並設定位移、縮放之類的參數。記得將該框格下方"選項"裡面的"工作流程執行時顯示此動作"勾選起來。

Step6. “將PDF頁面轉為影像”拖入上一個流程的下方,並設定相關參數

Step7. “重新命名Finder項目”拖入上一個流程的下方,並設定相關參數
當影像從PDF轉換回來時,可以重新命名影像名稱,方便檔案管理,否則檔案名稱就會是PDF的名稱。

Step8. “搬移Finder項目”拖入上一個流程的下方,並設定相關參數
最後一步也是很獵奇的一個步驟,因為在PDF轉換回影像後,影像檔案會暫存在暫存資料夾當中,而不是PDF檔案存在的位置,所以需要另外執行搬移檔案的指令。

Step9. 儲存並取個名稱後,將欲加入浮水印的影像全選起來並按右鍵,在右鍵選單的服務中,點選剛剛儲存的工作流程
等工作流程處理完後就可以看到加入浮水印的影像檔案在你指定的資料夾當中

以上示範了如何批次的將影像檔加入浮水印。要注意的是,影像大小不一定與一般A4 PDF尺寸一樣,所以設定浮水印大小及位置那一個步驟可能需要多試幾次,才會達到預期的效果。當然除了上述應用以外,Automator還可以有其他應用,例如自動將”郵件”中的特定寄件者在指定日期範圍的郵件內容,貼至”Excel”或”Word”中。我們可以根據自己生活上、工作上遇到的重複工作,建立屬於自己的自動化工作流程,長期下來可以節省不少時間呢。

最後,以我剛開始接觸Automaotr的需求,是希望能將”行事曆”當日事件標題抓出來,貼到”便條紙”當中,作為當日行程的摘要,顯示在桌面上。然而這樣的工作流程並沒有現成指令可以讓我以拖拉的方式完成,只能靠AppleScript撰寫程式碼。在[Mac OS X] AppleScript-行事曆當日事件同步到便條紙:進階班中有此應用案例的進一步說明。

留言

張貼留言

這個網誌中的熱門文章

[Mac OS X] AppleScript-行事曆當日事件同步到便條紙:進階班

[iOS/Swift] Holo Color Picker(空心調色盤)