If Var [not] in/contains Wert1,Wert2,...

Überprüft, ob der Inhalt der Variable mit einem der Elemente aus der Liste übereinstimmt.

if Var in Vergleichsliste
if Var not in Vergleichsliste

if Var contains Vergleichsliste
if Var not contains Vergleichsliste

Parameter

Var

Name der Variable, deren Inhalt überprüft werden soll. Bei dem Operator "in" muss die Variable exakt mit einem Element aus der Liste übereinstimmen. Bei dem Operator "contains" verhält es sich toleranter: Eine Übereinstimmung erfolgt, wann immer Var eines der Elemente als Teilzeichenkette enthält.

Vergleichsliste

Eine kommagetrennte Liste mit Zeichenketten, die mit dem Inhalt von Var verglichen werden sollen. Alle Leer- und Tabulatorzeichen an den angrenzenden Kommas sind von Bedeutung - das heißt, dass sie ein Teil der Übereinstimmungszeichenkette sind. Wenn Vergleichsliste beispielsweise ABC , XYZ wäre, kann eine Übereinstimmung nur erfolgen, wenn Var ABC und ein Leerzeichen enthält, oder ein Leerzeichen und XYZ.

Zwei aufeinanderfolgende Kommas ergeben ein direkt geschriebenes Komma. Zum Beispiel würde die folgende Zeile ein direkt geschriebenes Komma nach dem Wort Zeichenkette1 erzeugen: if Var in Zeichenkette1,,,Zeichenkette2. Im Vergleich dazu würde die folgende Liste nur ein einzelnes Element mit einem direkt geschriebenen Komma dazwischen enthalten: if Var in einzelnes,,Element. Um ein leeres Element in die Liste aufzunehmen, fügt man vor der Liste ein Komma ein. Zum Beispiel: if Var in ,Zeichenkette1,Zeichenkette2 (bei dem Operator "contains" wird ein leeres Element immer zur Übereinstimmung führen, weil eine leere Zeichenkette in jeder Zeichenkette gefunden werden kann).

Da die Elemente in Vergleichsliste nicht als einzelne Parameter behandelt werden, kann die Liste komplett in einer Variable enthalten sein. Diese Methode ist sowieso notwendig, wenn die Liste eine Länge von 16383 Zeichen überschreitet (die maximale Länge einer Skriptzeile). Zum Beispiel könnte Vergleichsliste aus %Liste1%,%Liste2%,%Liste3% bestehen, von der jede Unterliste eine lange Liste mit Elementen enthält.

Bei jedem einzelnen Element in der Liste, das länger als 16384 Zeichen ist, werden die zusätzlichen Zeichen als neues Listenelement behandelt. Daher sollte man am besten vermeiden, solche Elemente überhaupt erst einzufügen.

Bemerkungen

Der Vergleich erfolgt immer alphabetisch, nicht numerisch. Zum Beispiel würde die Zeichenkette "11" nicht mit dem Listenelement "11.0" übereinstimmen.

Der Operator "contains" ist das gleiche wie, als würde man IfInString/IfNotInString verwenden, außer dass er mehrere Suchzeichenketten unterstützt (von denen jede eine Übereinstimmung bewirken kann).

Mit StringCaseSense On kann der Vergleich Groß-/Kleinschreibung-sensitiv gemacht werden.

Wenn die Vergleichsliste zu lang ist, kann sie in mehreren kurzen Zeilen aufgeteilt werden (Fortsetzungsbereich), um sie besser lesbar und verwaltbar zu machen.

Vorsicht: Die Operatoren "between", "is", "in" und "contains" werden in Ausdrücken nicht unterstützt.

Siehe auch

if Var between, IfEqual/Greater/Less, IfInString, StringCaseSense, Blöcke, Else

Beispiele

if var in exe,bat,com
    MsgBox Die Dateiendung ist eine ausführbare.

if var in 1,2,3,5,7,11 ; Vermeiden Sie Leerzeichen in der Liste.
    MsgBox %var% ist eine kleine Primzahl.

if var contains 1,3  ; Beachten Sie hier, dass die Werte nicht als Zahlen, sondern als Zeichenketten verglichen werden.
    MsgBox var enthält die Zahl 1 oder 3 (var könnte auch eine 1, 3, 10, 21, 23, etc. sein)

if var in %Vergleichsliste%
    MsgBox %var% ist in der Liste.

InputBox, Benutzereingabe, Bitte JA oder NEIN eingeben
if Benutzereingabe not in ja,nein
    MsgBox Ihre Eingabe ist ungültig.

WinGetTitle, aktiver_titel, A
if aktiver_titel contains Adressenliste.txt,Kundenliste.txt
    MsgBox Eines der gewünschten Fenster ist aktiv.
if aktiver_titel not contains metapad,Notepad
    MsgBox Aber die Datei ist weder in Metapad noch in Notepad geöffnet.