Überprüft, ob der Inhalt der Variable mit einem der Elemente aus der Liste übereinstimmt.
if Var in VergleichListe if Var not in VergleichListe if Var contains VergleichListe if Var not contains VergleichListe
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.
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 VergleichListe beispielsweise ABC , XYZ
wäre, kann eine Übereinstimmung nur erfolgen, wenn Var ABC mit einem Leerzeichen am Ende oder XYZ mit einem Leerzeichen am Anfang enthält.
Zwei aufeinanderfolgende Kommas ergeben ein direkt geschriebenes Komma. Zum Beispiel würde die folgende Zeile ein direkt geschriebenes Komma nach dem Wort Zkette1 erzeugen: if Var in Zkette1,,,Zkette2
. 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 einzufügen, beginnen Sie die Liste mit einem Komma. Zum Beispiel: if Var in ,Zkette1,Zkette2
(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 VergleichListe 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 VergleichListe 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.
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 InStr() oder If[Not]InString 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 VergleichListe relativ lang ist, kann sie via Fortsetzungsbereich in mehreren kurzen Zeilen aufgeteilt werden, um die Übersichtlichkeit und Wartbarkeit des Skripts zu erhöhen.
Die Operatoren "in" und "contains" werden in Ausdrücken nicht unterstützt. Verwenden Sie stattdessen If-Anweisungen wie z. B. if (Var ~= "i)\A(Wert1|Wert2)\z")
für "in" oder if (Var ~= "i)Wert1|Wert2")
für "contains", um das Verhalten dieser Operatoren zu simulieren.
if Var between, IfEqual/Greater/Less, IfInString, StringCaseSense, Blöcke, Else
Überprüft, ob var die Dateiendung EXE, BAT oder COM ist.
if var in exe,bat,com MsgBox Die Dateiendung ist eine ausführbare.
Überprüft, ob var die Primzahl 1, 2, 3, 5, 7 oder 11 ist.
if var in 1,2,3,5,7,11 ; Vermeiden Sie Leerzeichen in der Liste. MsgBox %var% ist eine kleine Primzahl.
Überprüft, ob var die Ziffer 1 oder 3 enthält.
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)
Überprüft, ob var eines der Elemente in MeineElementeListe ist.
if var in %MeineElementeListe% MsgBox %var% ist in der Liste.
Erlaubt dem Benutzer die Eingabe einer Zeichenkette und überprüft, ob sie das Wort Ja oder Nein ist.
InputBox, BenutzerEingabe, Bitte JA oder NEIN eingeben if BenutzerEingabe not in ja,nein MsgBox Ihre Eingabe ist ungültig.
Überprüft, ob aktiver_titel "Adressenliste.txt" oder "Kundenliste.txt" enthält, und überprüft, ob es "metapad" oder "Notepad" enthält.
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.