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

Bestimmt eine oder mehrere Anweisungen, die ausgeführt werden sollen, wenn der Vergleich einer Variable mit einem Wert als True gewertet wird.

Veraltet: Altmodische If-Anweisungen sind nicht für neue Skripte empfohlen. Weitere Informationen finden sie unter Skriptsprache: If-Anweisung. Nutzen Sie stattdessen If (Ausdruck).

IfEqual, Var , Wert          ; if Var = Wert
IfNotEqual, Var , Wert       ; if Var != Wert
IfLess, Var , Wert           ; if Var < Wert
IfLessOrEqual, Var , Wert    ; if Var <= Wert
IfGreater, Var , Wert        ; if Var > Wert
IfGreaterOrEqual, Var , Wert ; if Var >= Wert

Parameter

Var
Der Name einer Variable. Prozentzeichen müssen weggelassen werden, es sei denn, eine Doppelreferenzierung ist beabsichtigt. Im Gegensatz zu Eingabevariablen anderer Befehle wird hier das Prozentpräfix nicht unterstützt.
Wert
Anführungszeichenloser Text oder eine Zahl. Variablenreferenzen müssen in Prozentzeichen gesetzt werden (z. B. %var2%). Wert kann weggelassen werden, wenn Var mit einer leeren Zeichenkette verglichen werden soll.

Bemerkungen

Sind Var und Wert rein numerisch, werden sie als Zahlen statt als Zeichenketten verglichen. Ansonsten werden sie alphabetisch als Zeichenketten verglichen (das heißt, dass die alphabetische Reihenfolge bestimmen wird, ob Var größer als, gleich oder kleiner als Wert ist).

Wenn ein If mehr als eine Zeile besitzt, müssen diese Zeilen mit geschweiften Klammern umschlossen werden (um einen Block zu erstellen). Besitzt ein If allerdings nur eine Zeile, können die geschweiften Klammern weggelassen werden. Zum Beispiel:

if Anzahl <= 0
{
    WinClose Unbenannt - Editor
    MsgBox Es sind keine Elemente vorhanden.
}

Beachten Sie, dass befehlsartige If-Anweisungen einen Befehl oder eine befehlsartige Ablaufsteuerungsanweisung auf der gleichen Zeile erlauben, allerdings werden falsch geschriebene Befehlsnamen als direkt geschriebener Text behandelt. Mit anderen Worten sind folgende Beispiele gültig:

IfEqual, x, 1, Sleep, 1
IfGreater, x, 1, EnvAdd, x, 2

Aber diese ungültig:

if x = 1 Sleep 1
IfGreater, x, 1, x += 2

Der One True Brace Style (OTB) kann nicht bei altmodischen If-Anweisungen angewendet werden. Dieser ist nur bei If (Ausdruck) möglich.

Neben solchen Anweisungen gibt es noch if Var between Untergrenze and Obergrenze, um zu überprüfen, ob eine Variable zwischen zwei Werten liegt, und if Var in Vergleichsliste, um zu überprüfen, ob der Inhalt einer Variable in einer Liste von Werten vorkommt.

Siehe auch

If (Ausdruck), StringCaseSense, Zuweisungsausdruck (:=), if Var in/contains, if Var between, IfInString, Blöcke, Else

Beispiele

#1

if Zähler >= 1
    Sleep, 10

if Zähler >=1   ; Um mehr als eine Zeile auszuführen, umschließen Sie diese mit geschweiften Klammern:
{
    WinClose, Unbenannt - Editor
    Sleep 10
}

if MeineVar = %MeineVar2%
    MsgBox Die Inhalte von MeineVar und MeineVar2 sind identisch.
else if MeineVar =
{
    MsgBox, 4,, MeineVar ist leer. Weiter?
    IfMsgBox, No
        Return
}
else if MeineVar != ,
    MsgBox Der Wert in MeineVar ist kein Komma.
else
    MsgBox Der Wert in MeineVar ist ein Komma.

if Fertig
    MsgBox Die Variable "Fertig" ist weder leer noch 0.