If/IfEqual/IfNotEqual/IfLess/IfLessOrEqual/IfGreater/IfGreaterOrEqual

AutoHotKey

If/IfEqual/IfNotEqual/IfLess/IfLessOrEqual/IfGreater/IfGreaterOrEqual

指定在变量与值比较结果为 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%). 如果您希望将 var 与空字符串 (空白) 进行比较, 那么可以省略 Value.

备注

如果 varvalue 都为纯数值, 那么它们将被作为数字而不是字符串进行比较. 其他情况下, 它们将被作为字符串按字母顺序进行比较 (即字母次序将决定 var 是大于, 等于或小于 value).

当 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

One True Brace (OTB) 风格 能用在 if 语句的这些类型中. 它只能和表达式类型的 if 语句一起使用.

相关提示,if var [not] between LowerBound and UpperBound 命令判断变量是否在两个值之间,而 if var [not] in value1,value2 可以用来判断变量内容是否存在于值列表中.

相关

IF (表达式), StringCaseSense, 赋值表达式 (:=), if var in/contains MatchList, if var between, IfInString, 区块, Else

示例

if counter >= 1
    Sleep, 10

if counter >=1   ; 如果 IF 结构中含有多行命令, 那么这些命令必须括在大括号中:
{
    WinClose, Untitled - Notepad
    Sleep 10
}

if MyVar = %MyVar2%
    MsgBox The contents of MyVar and MyVar2 are identical.
else if MyVar =
{
    MsgBox, 4,, MyVar is empty/blank. Continue?
    IfMsgBox, No
        Return
}
else if MyVar <> ,
    MsgBox The value in MyVar is not a comma.
else
    MsgBox The value in MyVar is a comma.

if Done
    MsgBox The variable Done is neither empty nor zero.