為什麼 Mac 使用者應該學習 Apple Script?以 Evernote 舉例,自動建立每日反省筆記,自動化處理繁瑣流程

朱騏
PM的生產力工具箱
8 min readMar 13, 2021

前言

許多軟體公司受限於團隊的開發時程、商業策略考量,用戶需要的功能不一定都能提供。

例如我在使用 Evernote 時,希望能讓 Evernote 每天自動建立一則筆記,讓我能夠紀錄當天的生活。

但…這麼簡單的自動化 Evernote 竟然沒辦法滿足我。其實不只 Evernote,就連 Notion, OneNote… 等知名的筆記軟體也都沒有這項功能。根據我的調查,目前有這項自動化功能的筆記軟體只有 Roam Research

Roam Research 每日自動新增筆記 (Daily note)

不見得所有人都需要這樣的功能,但當我們有一個微小且明確的需求時,是否可以靠自己的能力做一個呢?

如果你是 Mac 的用戶,這項心願就能夠實現,我們要使用的就是 Mac 內建的 Apple Script 和 Automator。

Apple Script 是 Mac 內建的原生程式語言,語法非常貼近人類的自然語言。由於 Apple Script 在 1993 年 (18 年前) 就有了,網路上有 “超級多” 其他人的討論與範例,是一個相對容易入門的程式語言。

Apple Script icon

Apple Script 實際上能做到哪些事情呢?不誇張地講,只要你 Mac 上安裝的軟體、看到的功能,幾乎都可以撰寫 Apple Script 進行操控。實際上,我們也用不到多困難的功能。

使用 Apple Script 的初衷應該放在把每天在 Mac 上重複做的事情,交給 Mac 自己去處理。

這篇文章分享我如何使用 Apple Script + Automator 解決上述的自動化問題。

備註
1. Windows 也許有這樣的套件,如果知道的人可以在下方留言告訴我。
2. 根據 Evernote 論壇討論,新版 Evernote (版本 10.0 以上) 不支援 Apple Script我目前使用的是 Evernote Legacy 版本 (舊版本),你可以在這裡下載。

一、初探 Apple Script

這篇文章不會特別解說 Apple Script 的語法,入門者請參考下方文章。給自己 30 分鐘,你就會最簡單的 Apple Script 語法:

  • 呼叫 Finder 跟你打招呼
  • 開啟 Mac 郵件軟體自動寄信

二、直接應用,讓 Evernote 每天自動創建一則筆記

開始寫程式前的思考

寫任何程式前,一定要先思考:

我究竟要叫這支程式幫我做什麼?

我的目的很簡單,一共有 3 個需求

  • 創建一則新筆記,將 Title 命名成【每日行動清單】 YYYY.MM.DD
  • 筆記內文的預設內容為「💡 紀錄今天發生過的事情吧」
  • 指派 tag 給這則筆記,tag 名稱為「2021 daily note」

當我開啟 Apple Script 之後 ,我的第一件事情應該是:

上網 Google 有沒有參考範例。如果有的話就不需要重複造輪子,如果沒有的話再重新思考。

Apple Script 畫面

很幸運地,Evernote 技術文件 有提供相關的範例,不過無法滿足我的需求,因此我必須自己增加一些程式碼。

Evernote 技術文件

程式碼

下方是我最終的程式碼,簡單說明如下:

1. 處理日期格式
Apple Script 的日期函式支援弱,因此需要手動去讀取需要的年、月、日。

例如 Apple Script 內建的 current time 只能抓取到這台電腦此時此刻的 年/月/日/星期幾/時/分/秒,依據需求需要自行做格式處理。

2. 註解
Apple Script 的註解格式是 — ,記得寫註解才不會忘記這段程式在做什麼

3.查看 Dictionary
Apple Script 中如果要查找某個函式 (function) 的功能如何使用,可以按 ⌘⇧O (或是檔案 > 打開指令詞彙) 查看 Dictionary。

Dictionary 中可以清楚看到每個軟體支援的函式、可取用的屬性 (property) ,有趣的是 Apple Script 是用 v. (動詞)、n.(名詞) 來定義,因此寫 Apple Script 看起來就像在寫一句英文。

Apple Script dictionary

最後按下 ▶︎ 看結果,成功的話就出現以下畫面!

成功自動建立筆記!

三、加入 Automator 排程,讓 Mac 自動幫你執行

寫完 Apple Script 很開心,但每次都要按執行也太麻煩了,我們試著讓 Mac 自動幫我們執行吧!

我們要使用同樣是 Mac 內建的軟體 — Automator。操作步驟如下:

1.開啟 Automator,選擇「行事曆鬧鐘」

開啟 Automator,選擇「行事曆鬧鐘」

2.點擊 「工具程式」>「執行 AppleScript」

點擊 「工具程式」>「執行 AppleScript」

3.將剛才寫的 Apple Script 程式碼貼到 Automator 中

將剛才寫的 Apple Script 程式碼貼到 Automator 中
請留意只需覆蓋掉 Automatro 中的紅色區塊文字即可,要保留 on run, end run

4.關閉 Automator,系統自動詢問是否儲存,替檔案命名並儲存

5.查看 Mac 行事曆,會看到已建立好的 Automator 排程,可自行調整執行時間

如果要每天執行,記得將重複時間設定成「每天」

四、總結與延伸學習

在學習 Apple Script 並寫出這個小小的自動化程序,給了我 3 個體悟:

  1. 思考是否有更好的作法,如果有就去嘗試
  2. 嘗試的過程不一定會成功,但折騰的結果會讓自己更懂了某樣東西
  3. 不要受到職位、學歷、產業的影響,任何人都可以學習寫程式。

我們的目標不是建立一個多偉大的功能,而是多一個工具去解決問題。

寫程式是一個循環過程:

  • 定義問題
  • 尋找方法
  • 動手實作
  • 接受反饋與修正

直接從「問題」下手去了解某樣必須的知識,可以讓自己學的更有成就感。

下方是 Apple Script 的學習資源,供有興趣的人參考:

▶︎ 關於文章1/ 如果有任何疑問、想聽的主題,歡迎在文章下方留言給我 💬如果想給我一點鼓勵,請給我 1–10 個拍手;
如果覺得文章對你有幫助,請給我 10–40 個拍手;
如果你覺得文章寫的不錯,請給我40+ 個拍手讓我知道 👏🏻
2/ 想要掌握最新文章,可以點擊下方「Follow」我~3/ 歡迎訂閱 我的電子報 獲得實用的生產力點子,每週二中午 12:00 準時發刊▶ 關於我我是朱騏,一個組織能力超強的軟體產品經理,喜歡研究各種生產力工具、時間管理方法。1/ 我可以提供產品管理、時間管理、生產力工具的「個人問題諮詢」與「講座邀約」。2/ 若是個人諮詢,可以請我喝杯咖啡、吃頓晚餐,可透過 Email/ Facebook 跟我約時間,請參考「聯繫方式」。3/ 若是講座邀約,請直接使用 Email 聯繫。︎▶︎ 聯繫方式- 📪 Email:muhenry608@gmail.com- 💬 Facebook:請先加我個人好友並簡短說明想要諮詢的主題▶︎ 建立人脈歡迎使用 LinkedIn 與我交流,你可以「加我為好友」建立連結| LinkedIn @ Chi Chu 歡迎交流

--

--

朱騏
PM的生產力工具箱

線上寫作教練,擁有 6 年的 SaaS 產品經理 & 2 年軟體技術寫手工作經驗。我專注寫 (1)技術寫作 (2)數位寫作 (3) 個人知識管理的文章 🤝 歡迎講座邀約、諮詢,可參考 www.chichu.co/training