指定一个变量和一个值比较得出 TRUE 时要执行的命令。当存在多个命令时,将它们括入一个区块。
IfEqual, var, value (同:if var = value)
IfNotEqual, var, value (同:if var <> value) (!= 能用来替代 <>)
IfGreater, var, value (同:if var > value)
IfGreaterOrEqual, var, value (同:if var >= value)
IfLess, var, value (同:if var < value)
IfLessOrEqual, var, value (同:if var <= value)
If var ;如果变量的内容为空或为 0,那么它被视为 false。否则,它为 true。
另外可见:IfInString
var | 变量名称。 |
value | 原义的字串、数字或者变量引用(例如 %var2%)。Value 可以被省略,如果你想要将 var 与一个空字符串(空白的)相比较。 |
如果 var 和 value 都是纯粹的数值型,它们将被作为数字比较,而不是作为字符串。否则,它们将作为字符串按字母顺序来比较(就是说,字母的次序将决定 var 是否小于、等于或者大于 value)。译注:A<B
当一个 IF 或者 ELSE 拥有多行时,那些行必须被括入大括号。例如:
if count <= 0 { WinClose Untitled - Notepad MsgBox There are no items present. }
然而,如果仅有一行属于 IF 或者 ELSE,大括号就是可选的。
如果你使用命令名称类型,那么另一个命令就只能出现在 IF 语句的同一行。换句话说,这些是有效的:
IfEqual, x, 1, Sleep, 1 IfGreater, x, 1, EnvAdd, x, 2
但是这些是无效的:
if x = 1 Sleep 1 IfGreater, x, 1, x += 2
单个正确的大括号(OTB)类型不能和这些类型的 IF 语句一起使用。它只能和表达式类型的 IF 语句一起使用。
做一个相关的提示,"if var [not] between LowerBound and UpperBound" 命令检查一个变量是否在两个 values 之间,而 "if var [not] in value1,value2" 能用来检查一个变量的内容是否在 values 列表里存在。
IF (expression), StringCaseSense, Assign expression (:=), if var in/contains MatchList, if var between, IfInString, Blocks, Else
if counter >= 1
Sleep, 10
if counter >=1 ;如果一个 IF 有多行,将那些行括入大括号:
{
WinClose, Untitled - Notepad
Sleep 10
}
if MyVar = %MyVar2%
MsgBox MyVar 和 MyVar2 的内容是相同的。
else if MyVar =
{
MsgBox, 4,, MyVar 是空的/空白的。继续?
IfMsgBox, No
Return
}
else if MyVar <> ,
MsgBox value 在 MyVar 里不是一个逗号。
else
MsgBox value 在 MyVar 里是一个逗号。
if Done
MsgBox 变量 Done 即不为空也不为零。
翻译:天堂之门 menk33@163.com 2008年11月14日