[AHK-] AutoHotKey 入門教學 - 變數與剪貼簿
變數與剪貼簿:
Using variables and the clipboard
http://www.autohotkey.com/docs/Tutorial.htm#Variables
變數(Variable):
變數(Variable)就是可以放入一段文字的空箱子(其實是一小段記憶體空間)。
雖然變數可以儲存任意的字母、字串,
不過當一個變數只包含數字(當然可以包括小數點),並且拿來做運算或比較大小時,
它會被自動轉換成真的可以運算的數字,再做運算。
相反地,如果你將運算結果儲存回變數裡面的話,
它會被轉成字串然後才放進變數裡面。
除了函式裡面的變數屬於區域變數(local variable),
其他的變數都是 全域變數(global variable)。
也就是說,一段 script 裡面所有的指令都可以讀取或儲存全域變數。
關於 函式 http://www.autohotkey.com/docs/Functions.htm#Locals
變數出生的時候不需宣告,當你寫下變數的名字,它們就已經存在了唷~~
如果沒有特別指定,變數出生時箱子裡面是空空的沒有任何東西。
下面的範例將示範如何指定一段文字給一個變數:
MyVar1 = 123
MyVar2 = 我是可愛的文字
下面的例子則是一個變數的與其他字串(數字)比較:
MyVar1 = 123
MyVar2 = 我是可愛的文字
if MyVar2 = 我是可愛的文字
{
MsgBox MyVar2 的內容是 "我是可愛的文字".
}
if MyVar1 >= 100
{
MsgBox MyVar1 的內容是 %MyVar1%, 這個值大於或等於 100.
}
在最後一個 MsgBox 後面,或許有人已經注意到 MyVar1 兩邊多了 % 這個符號
(沒注意到的話請洽眼科醫生)。
%MyVar1%(兩邊有 % )出現的地方,表示會將 MyVar1 的資料提取出來,
再依照所下的指令進行顯示、運算等等。這裡則是直接將內容值顯示出來。
這種使用技巧還可以運用在將變數內容的拷貝或移轉給另一個變數,範例如下:
MyVar1 = 123
MyVar2 = 我是可愛的文字
MyVarConcatenated = %MyVar1% %MyVar2%
MsgBox %MyVarConcatenated%
在第三行右邊,會先將等號右邊的東西連結起來再丟進 MyVarConcatenated 變數中。
等號右邊分成三部份:
第一部份:%MyVar1% 也就是 123
第二部份:一個空格 也就是 空白鍵按一下。 ^_^|||
第三部份:%MyVar2% 也就是 我是可愛的文字。
所以最後 MyVarConcatenated 的內容就是“123 我是可愛的文字”
^這裡有一個空格唷~~
這個範例會進行兩個變數的比較:
ItemCount = 2
ItemLimit = 1
if (ItemCount > ItemLimit)
{
MsgBox ItemCount 裡面的數值是 %ItemCount%, 比 %ItemLimit% 還大.
}
注意:
if 後面有小括號,表示這個 if 指令包含一個表達式(expression)。
少了這對小括號,則稱為沒有表達式的 if-指令(non-expression if-statement)。
少了小括號,右邊的變數(這裡是 ItemLimit)旁邊一定要加上 % 符號,
而且只能有一個比較運算子( >, <, >=, <= 等等),
也就是說,不能使用 "AND"、"OR" 這類運算子。
像
( Var1 >= 60 AND Var1 <= 100 )
就一定要在左右加上小括號。
以這個例子來說,一定要寫成下面其中一種,才能正確執行:
if ItemCount > %ItemLimit%
if ( ItemCount > ItemLimit )
數學運算:
要將計算結果丟進變數箱子裡面,必須使用 :=(冒號-等號)這個運算子。
範例如下:
Price = 100
Discount = 0.2
NetPrice := Price * (1 - Discount/100)
表達式(expression)那邊有完整的數學運算子介紹。
http://www.autohotkey.com/docs/Variables.htm#Expressions
剪貼簿:
Clipboard 是一個特別的變數,因為它裡面裝的是 Windows 剪貼簿目前儲存的文字。
而且你可以像使用一般變數一樣任意使用它唷~~
下面這個範例會將剪貼簿的文字顯示出來:
MsgBox %clipboard%
下面的例子會改變剪貼簿的內容(替換文字):
clipboard = 這是第一行文字.`r`n這是第二行文字.`r`n
`r 表示回到那一行的最前面。
`n 表示新增一行。
兩個寫在一起,就好像在記事本裡面按 [Enter] 換行一樣。
要將剪貼簿的文字增加(或者放到其他變數裡面),可以類似像這樣寫:
clipboard = %clipboard% 好妙! 變長了耶~~
更深入的討論可以參考:
Clipboard、ClipboardAll、還有 OnClipboardChange
(Clipboard, ClipboardAll, and OnClipboardChange)
http://www.autohotkey.com/docs/misc/Clipboard.htm
變數和表達式(Variables and Expressions)
http://www.autohotkey.com/docs/Variables.htm
--
主動是機會的誘餌
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.62.93.10
※ 編輯: VElysian 來自: 61.62.73.116 (07/22 01:33)
推
07/22 08:24, , 1F
07/22 08:24, 1F
→
07/22 09:48, , 2F
07/22 09:48, 2F
→
07/22 10:09, , 3F
07/22 10:09, 3F
→
07/22 10:10, , 4F
07/22 10:10, 4F
→
07/22 23:38, , 5F
07/22 23:38, 5F
→
07/22 23:39, , 6F
07/22 23:39, 6F
→
07/23 18:36, , 7F
07/23 18:36, 7F
→
07/23 18:37, , 8F
07/23 18:37, 8F
※ 編輯: VElysian 來自: 61.62.150.174 (07/27 21:28)
※ 編輯: VElysian 來自: 61.62.72.58 (08/01 19:18)
EzHotKey 近期熱門文章
PTT數位生活區 即時熱門文章