作者VElysian (家瑀 致中和)
看板EzHotKey
标题[AHK-] AutoHotKey 入门教学 - 变数与剪贴簿
时间Mon Jul 21 23:38:24 2008
变数与剪贴簿:
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)
1F:推 CHCOOBOO:推教学 07/22 08:24
2F:→ kslman:我的头好晕,我需要晕程式码药 07/22 09:48
3F:→ VElysian:嗯,看来写得不够清楚,欢迎发问唷~~ ^__^ 07/22 10:09
4F:→ VElysian:这样才方便调制新药,可以对症下药。 ^^ 07/22 10:10
5F:→ kslman:哈哈,是因为我是程式码门外汉嘛 07/22 23:38
6F:→ kslman:只玩过Dos时代的bat档,而且是很简单的指令 07/22 23:39
7F:→ VElysian:软体里面的说明文件: Variables and Expressions 07/23 18:36
8F:→ VElysian:那边有说明,可以先看看。 改日有空会再补充。 ^_^ 07/23 18:37
※ 编辑: VElysian 来自: 61.62.150.174 (07/27 21:28)
※ 编辑: VElysian 来自: 61.62.72.58 (08/01 19:18)