Ü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
| 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. 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. |
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.
if var between, IfEqual/Greater/Less, IfInString, StringCaseSense, Blöcke, Else
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.