If var [not] in value1,value2,...
If var [not] contains value1,value2,...


Überprüft, ob der Inhalt einer Variable mit einem Text in einer Liste übereinstimmt.

if Var in MatchList
if Var not in MatchList
if Var contains MatchList
if Var not contains MatchList

Parameter

Var Der Name der Variablen, deren Inhalt geprüft wird. Für den "in"-Operator ist eine exakte Übereinstimmung mit einem Text aus der Liste erforderlich. Der "contains"-Operator erkennt eine Übereinstimmung, sobald Var einen der Listen-Werte als Textfragment enthält.
MatchList

Eine Liste aus komma-getrennten Strings (Texten), die alle mit dem Inhalt von Var verglichen werden. Leerzeichen oder Tabulatoren werden mitverglichen! Wenn z. B. MatchList ABC , XYZ enthält, muß für eine Übereinstimmung Var entweder ABC mit einem anhängendem Leerzeichen oder XYZ mit einem führenden Leerzeichen enthalten.

Zwei aufeinanderfolgende Kommas ergeben ein einzelnes "wirkliches" Komma.
Das folgende Beispiel erzeugt ein einzelnes Komma am Ende von string1: If Var In string1,,,string2.
Die folgende Liste enthält einen einzigen Text mit einem Komma drin: If Var In single,,item.
Um einen leeren Text in die Liste aufzunehmen, schreiben Sie als erstes Zeichen ein Komma wie im folgenden Beispiel: If Var In ,string1,string2 (Der "contains"-Operator erkennt bei einer leeren Zeichenkette immer eine Übereinstimmung, weil eine leere Zeichenkette in allen Strings gefunden wird.).

Weil die Texte in MatchList nicht als einzelne Parameter behandelt werden, kann die komplette Liste auch in einer Variable enthalten sein. Der Text - oder Teile davon - müssen sogar in einer Variablen enthalten sein, falls er länger als 16383 Zeichen ist. Dies ist die maximale Länge einer Script-Zeile. Zum Beispiel könnte MatchList aus %List1%,%List2%,%List3% bestehen, wobei jede der Unterlisten eine lange Liste mit Zeichenketten enthält.

Bei jeder Zeichenkette in der Liste, die länger als 16384 Zeichen ist, werden die überzähligen Zeichen als neue Zeichenkette betrachtet. Folglich ist es am besten, solche Zeichenketten zu vermeiden.

Bemerkungen

Der Vergleich ist immer alphabetisch, nicht numerisch. Der Text "11" würde z. B. nicht mit dem Listen-String "11.0" übereinstimmen.

Der "contains"-Operator ist dasselbe wie IfInString/IfNotInString bis auf die Unterstützung mehrerer Such-Strings (wobei jeder einzelne davon eine Übereinstimmung bewirken kann).

Mit "StringCaseSense On" kann man den Vergleich von der Groß/Klein-Schreibung abhängig machen.

Eine sehr lange MatchList kann man mit einer continuation section in mehrere kürzere Zeilen aufteilen, um Lesbarkeit und Wartung zu verbessern.

Die Operatoren "between", "is", "in", und "contains" werden nicht in Ausdrücken 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 vom Typ "ausführbar".

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, daß die Werte als Strings und nicht als Zahlen verglichen werden.
    MsgBox Var enthält die Ziffer 1 oder 3 (Var könnte 1, 3, 10, 21, 23 usw sein.)

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

InputBox, UserInput, Geben Sie Ja oder Nein ein
if UserInput not in Ja,Nein
    MsgBox Ungültige Eingabe!

WinGetTitle, active_title, A
if active_title contains AdressListe.txt,KundenListe.txt
    MsgBox Eins der gewünschten Fenster ist aktiv.
if active_title not contains metapad,Notepad
    MsgBox Aber die Datei ist weder mit Metapad noch mit Notepad geöffnet.