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

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

Veraltet: Legacy-If-Anweisungen sind nicht für neue Skripte empfohlen. Weitere Informationen finden Sie unter Skriptsprache: If-Anweisung. Verwenden 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 den Eingabevariablen anderer Befehle wird das Prozentpräfix nicht unterstützt.
Wert
Wenn leer oder weggelassen, wird Var mit einer leeren Zeichenkette verglichen. Andernfalls geben Sie einen anführungszeichenlosen Text oder eine Zahl an. Variablenreferenzen müssen in Prozentzeichen gesetzt werden (z.B. %var2%).

Bemerkungen

Wenn Var und Wert rein numerisch sind, werden sie als Zahlen statt als Zeichenketten verglichen. Andernfalls werden sie alphabetisch als Zeichenketten verglichen (d.h. die alphabetische Reihenfolge bestimmt, 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 bilden). 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 bei befehlsartigen If-Anweisungen ein Befehl oder eine befehlsartige Kontrollanweisung auf derselben Zeile stehen kann, allerdings werden falsch geschriebene Befehlsnamen als direkt geschriebener Text behandelt. Mit anderen Worten sind die Folgenden 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 (OTB) Style kann nicht bei Legacy-If-Anweisungen verwendet werden. Dieser ist nur bei If (Ausdruck) möglich.

Neben diesen Anweisungen gibt es noch If Var [not] between Min and Max, um zu prüfen, ob eine Variable zwischen zwei Werten liegt, und If Var [not] in/contains VergleichListe, um zu prüfen, ob der Inhalt einer Variable in einer Liste von Werten vorkommt.

If (Ausdruck), StringCaseSense, Ausdruckszuweisung (:=), If Var [not] in/contains VergleichListe, If Var [not] between Min and Max, IfInString, Blöcke, Else

Beispiele

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

if Zähler >= 1
    Sleep, 10

Wenn Zähler größer gleich 1 ist, schließe Notepad und warte 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. Andernfalls, 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. Andernfalls, wenn MeineVar kein Komma ist, zeige "Der Wert in MeineVar ist kein Komma.".
  4. Andernfalls 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.