Mac的自動化(1)–AppleScript終極入門手冊(1)

Viewing 0 posts (of 0 total)
waikitz's 的頭像
waikitz
使用者
Post Counts: 19
#1

AppleScript的終極入門手冊(1)

首先Jay必須先聲明本文的出處,Jay十分尊重別人的勞動,這個文章只是我翻譯來的,原文http://mac.appstorm.net,如果對原文感興趣的同學請前往閱讀。好了,我們開始吧! AppleScript 是 Mac OS X內置的一種功能強大的腳本語言,使用 AppleScript 的目的是把一些重復繁瑣並且耗費時間的任務自動化。比如我是一個自由職業者,我十分的討厭每個星期為不同的客戶去創建帳單,為了解決這個問題我寫了一個 AppleScript 來讀取我在 iCal 裏輸入的時間,然後自動在 Microsoft Excel 裏根據這些時間創建出帳單並且自動通過郵件發送給我的客戶,要完成所有的這一切動作只需要輕輕的按一個按紐。

AppleScript 的一個優點是你不必是一個天才程序員才能使用它,事實上你甚至不需要有任何編程的經驗!這篇文章會告訴你如何通過隱藏在每個應用程序框架裏的簡單指令去為幾乎任何的應用程序寫一個 AppleScript。感興趣了?那就繼續讀下去吧~ [caption id="attachment_268" align="aligncenter" width="462" caption="The Main Window"][/caption]

從這裏開始:Tell 命令塊

要創建一個 AppleScript時,只要打開 Applications 文件夾裏的 Utilities 裏面的 AppleScript Editor 就可以開始了。打開後你會看到上圖類似的窗口,這個是 AppleScript 編輯器的主窗口,嘗試在裏面輸入以下的代碼:

tell application "Finder"

	display dialog "Hello World"

end tell

AppleScript 這種腳本語言本身盡可能使用平實的英語作為語法來讓代碼特別容易理解和閱讀。AppleScript 的大多數命令會位於 Tell 命令塊內,它叫 “Tell 命令塊” 是由於你在“告訴”應用程序你想它做些什麽。比如上面所說的三行代碼告訴 Finder 這個應用程序顯示一個包含 “Hello World” 字符串的對話框。當你在 Tell 命令塊內寫完了你想要應用程序做的一個或多個命令後,你必須要以 “end tell” 命令來結束這個 Tell 命令塊。

小技巧:初學者最容易犯的錯誤就是忘了最後加上 “end tell” 來結束 Tell 命令塊,如果把它忘了,腳本將會編譯失敗。

當你在編輯器內完成輸入上面的代碼後,按下上面的 “Compile” 鐵錘圖標。如果你的語法是正確的話,你所輸入的代碼會被自動格式化並改變顏色。如果你輸入的時候出現了錯誤,當你編譯的時候編輯器會告訴你哪一塊出錯了,並嘗試告訴你它認為錯誤是什麽。下面是編輯器默認的一些顏色分別代表什麽,你可以在菜單欄的 AppleScript Editor->Preferences裏看到並修改。 [caption id="attachment_269" align="aligncenter" width="450" caption="Syntax Color"][/caption] 你的代碼成功編譯後,再按 “Run” 圖標,你應該會看到以下的對話框: [caption id="attachment_270" align="aligncenter" width="360" caption="Hello World"][/caption] 現在按下 “OK” 按紐並且看一下編輯器下方。當你運行一腳本時,編輯器會告訴你運行的結果是什麽,或者什麽被“返回”了,在我們的例子裏,它告訴我們 “OD” 按紐被按下了。

聲明變量

變量在每一種編程語言裏面的意義都是一樣的,程序代碼利用變量方便的對許多信息進行讀取或運算。但在每一種語言裏創建或“聲明”變量是不同的,在 AppleScript 裏你會像下面這樣聲明變量:

set theString to "Hello World"

tell application "Finder"

	display dialog theString

end tell

上面的例子中有幾處地方需要註意。首先,我們註意到變量的聲明是通過 “set” 和 “to” 命令來進行。在例子中我們 “set” 了我們的變量(“theString”)為一個值(“Hello World”)。在很多編程語言裏程序員被要求必須聲明變量的類型(如整型、浮點型、字符串等等),但 AppleScript 足夠的聰明而不需要程序員聲明類型。 另外,請註意我是如何對變量命名的。你不能在變量名中間加空格,所以最好使用駝峰型(theString)或下劃線型(the_string)變量命名方法。使用哪一種命名方法並不重要,但在你所寫的程序中最好保持統一的命名方法。當你讀其他人寫的代碼時,你一定會很討厭看到類似 “myVariable” 這樣的變量名,因為你從變量名上根本看不出這個變量是用來存什麽的。 最後,我們註意到把 “Hello World” 放進了變量中,我可以在代碼裏一遍又一遍的引用這個變更。如果後面我決定要把 “Hello World” 改成 “Good Morning Dave”,我只需要在聲明變量的那一行進行修改就可以了。

使用變量

你可以盡情的使用變量來做各種瘋狂的事,但鑒於這是一篇入門文章,我只會告訴你幾種方法,輸入下面的代碼:

--Integer Variables
set theFirstNumber to 3
set the theSecondNumber to 2

--Variable Operations
set theAnswer to (theFirstNumber + theSecondNumber)
set theAnswer to (theAnswer + 1)

--String Variables
set theString to "3+2+1="

--Display Dialog
tell application "Finder"

	display dialog theString & theAnswer

end tell

當你的腳本變得越來越復雜,你就需要好好的組織一下你的腳本了。在一行代碼前加上兩個"-"號,代表這一行是註釋,你可以使用註釋來隔開和解釋你的代碼方便以後閱讀。在上面的例子裏,我創建了一個字符變量和幾個整數變量。你可以對變量進行數學運算,在這裏我把 “theFirstNumber” 設為3,“theSecondNumber”設為2,然後把他們相加並賦值給 “theAnswer” 變量。 另外,你可以在變量創建後改變變量的值。在 “theFirstNumber” 和 “theSecondNumber” 相加並把結果賦值給 “theAnswer”(結果為5)後,我馬上把 “theAnswer” 自己加1(結果為6)。如果你運行這個腳本,你應該會看到以下的結果: [caption id="attachment_271" align="aligncenter" width="360" caption="Basic Math"][/caption] 這只是一個很簡單的範例,示範你可以對變量做的一些操作。你現在應該明白變量的值並不是不變的,一門編程語言的強大在於你能通過對變量的操作完成各種各樣的任務。

本文未完,請耐心等待Jay,請多支持MacFav,謝謝!

Viewing 0 posts (of 0 total)