用 Automator 做一個自動打包的 app

應用場景:

由於工作原因,每天需要收集幾張截圖(jpg),最後打包發郵件。雖然量不是太多,但是對於重複的操作,寫個自動腳本豈不是很高大上,自動打包過程中可以對圖片批量壓縮一下,減少郵件大小。


準備工作:

基本都是在 automator 裏面操作,需要補充的是 7z 這個命令。

在mac下對比了一下幾種壓縮格式:

**zip**直接右鍵就可以生成,但是zip發給win用戶會出現亂碼;

**rar**裝過,可選;

**7z**壓縮效果比較好,到win下面也不會有編碼問題,所以一直在用這個格式(tar.bz2對比了一下壓縮率沒有7z高,另外這樣的格式發給win用戶會覺得不習慣)


系統默認不帶7z這個命令,需要安裝p7zip,可以官網下原碼自己編譯,也可以用比較簡單的辦法brew(家釀,http://brew.sh),

#brew install p7zip

基本無痛安裝好,在終端輸入7z,有輸出就說明安裝好了,類似rar命令。

我在安裝的時候出現點小故障,裝好了之後7z命令無效,但brew提示安裝成功的,能找到目錄 /usr/local/Cellar/p7zip/9.20.1/bin ,並且有7z,7za,7zr這三個可執行(只用到7z),修復方法是 ln 快捷方式

#sudo ln -s /usr/local/Cellar/p7zip/9.20.1/bin/7z /usr/bin
#sudo ln -s /usr/local/Cellar/p7zip/9.20.1/bin/7za /usr/bin
#sudo ln -s /usr/local/Cellar/p7zip/9.20.1/bin/7zr /usr/bin


製作app

i. 打開 Automator,新建一個 Application


ii. 流程的第一步,選擇左側 Files & Folders 組,找到 Ask for Finder Items 拖放到右側,Start at 這個可以選擇需要打包文件的主目錄,例如 /Users/user/Desktop/screenshot ,Type 選擇 Folders


iii. 流程的第二步,從左側找到Duplicate Finder Items,拖放到右側(複製一份的操作比較安全),這一步操作會在相同文件夾下創建一個部分,例如 “20140715” 這個文件夾將生成一個命名爲 “20140715 copy”的副本


iv. 流程的第三步,從左側找到 Get Folder Contents,拖放到右側,這一步將作爲下一步的輸入


v. 流程的第四步,左側切換到 Photos 組,找到 Scale Images ,拖放到右側,這一步將批量壓縮選定文件夾裏面的圖片文件,下拉列表選擇 To Size (pixels) 既按像素來壓縮圖片,右側填入 1024(如果照片的像素爲a * b, a 大於1024,那麼 a 將被減小到1024,b會按比例減小到相應的值),這個尺寸能在保持圖片內容清晰可見(沒有太小的字體)的情況下,儘量減小圖片大小。


vi. 流程最後一步,左側切換到 Utilities 組,找到 Run Shell Script,拖放到右側,靠右的參數 Pass input 選擇 as arguments ,然後在白色區塊內填入 shell 腳本。

#picPath=`dirname "$1"`
#spath=$picPath/*.jpg
#tpath=${picPath:0:39}.7z
#echo $spath
#echo $path
#7z a -t7z -mx7 "$tpath" "$spath"

解釋如下:

我們需要打包的是工作目錄下得 20140715 這個文件夾裏面的所有jpg圖片,如shell第一行,$1 實際上攜帶了第一個參數(當前操作的是複製過的文件夾) "/Users/user/Desktop/screenshot/20140715 copy/pic1.jpg”,dirname 的作用是取到當前目錄,所以picPath的值爲 "/Users/user/Desktop/screenshot/20140715 copy”;

先看最後一行shell,7z 命令,a命令就是增加壓縮包,-t7z 開關說明文件類型type 爲7z, -mx7 開關將壓縮率提高到7,後面 tpath 爲目標地址,spath 是源文件地址,加雙引號是避免路徑出現空格導致執行失敗;

確定源地址,見shell第二行,$picPath/*.jpg,那麼這裏就是"/Users/user/Desktop/screenshot/20140715 copy/*.jpg”,即目錄下的所有jpg文件;

確定目標地址,${picPath:0:39}.7z,從第0個字符開始,到後面的第39個字符,這裏就是”/Users/user/Desktop/screenshot/20140715.7z”;

現在就很清楚了,echo主要爲了 debug 用的。



最後存儲爲app就可以了。存儲好的 app 可以直接雙擊運行,還可以自定義圖標,看起來更像app。

修改圖標的方法:在生成的 .app 文件上按 Command+i, 打開 信息面板,左上角的圖標那裏是可以點的,如果是png文件的話,直接拖上去效果一般出不來,最好就是先在預覽裏面打開png,然後command+a 全部選中以後,command+c 粘貼,回到信息面板,選中左上角圖標,command+c 就切換好了。 

wKiom1PE93_A-uDfAACXTTxYmPU247.jpg》》》》》wKioL1PE91DDVo1SAAAio2NSNBc413.jpg



後記,

電源放在外包一直是個隱患啊,今天差點杯具。上班剛好趕上大雨,雨傘不夠大,能溼的基本都溼了,對,包括充電器(電腦完好,哈哈),只有10%的電量,完了電腦就沒電了,充電器充不了,碰運氣把它放空調下面吹了n個小時,結果就復活了,電腦打開後第一件事就是寫這個博客,呵呵呵。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章