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 Kontrollanweisung 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 VergleichListe, um zu überprüfen, ob der Inhalt einer Variable in einer Liste von Werten vorkommt.

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

Beispiele

Wenn Zähler größer gleich 1 ist, warte für 10 ms.

if Zähler >= 1
    Sleep, 10

Wenn Zähler größer gleich 1 ist, schließe den Texteditor und warte für 10 ms.

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

Dieses Beispiel wird wie folgt ausgeführt:

  1. Wenn MeineVar gleich MeineVar2 ist, zeige "Die Inhalte von MeineVar und MeineVar2 sind identisch."
  2. Ansonsten, wenn MeineVar leer ist:
    1. Zeige "MeineVar ist leer. Weiter?" und warte auf Benutzereingabe.
    2. Wenn der Benutzer "Nein" drückt, stoppe weitere Überprüfungen.
  3. Ansonsten, wenn MeineVar kein Komma ist, zeige "Der Wert in MeineVar ist kein Komma.".
  4. Ansonsten, zeige "Der Wert in MeineVar ist ein Komma.".
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.

Wenn Fertig weder leer noch 0 ist, zeige "Die Fertig-Variable ist weder leer noch 0.".

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