Prüft, ob der Inhalt einer Variable mit einem der Elemente in einer 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 geprüft werden soll. Beim Operator "in" ist eine genaue Übereinstimmung mit einem der Listenelemente erforderlich. Der Operator "contains" ist toleranter: Mit diesem erfolgt bereits eine Übereinstimmung, wenn Var eines der Listenelemente als Teilzeichenkette enthält.
Eine kommagetrennte Liste von Zeichenketten, die mit dem Inhalt von Var verglichen werden sollen. Alle Leer- und Tabulatorzeichen neben den Kommas sind relevant, d.h. sie sind Teil der Vergleichszeichenkette. Wenn VergleichListe z.B. ABC , XYZ
ist, muss Var entweder ABC mit einem Leerzeichen am Ende oder XYZ mit einem Leerzeichen am Anfang enthalten, damit eine Übereinstimmung erfolgt.
Zwei aufeinanderfolgende Kommas ergeben ein direkt geschriebenes Komma. Zum Beispiel würde das Folgende ein direkt geschriebenes Komma nach dem Wort Zkette1 erzeugen: if Var in Zkette1,,,Zkette2
. Entsprechend enthält die folgende Liste nur ein einzelnes Element mit einem direkt geschriebenen Komma dazwischen: if Var in einzelnes,,Element
. Um ein leeres Element in die Liste einzufügen, machen Sie das erste Zeichen in der Liste zu einem Komma, z.B. if Var in ,Zkette1,Zkette2
(im Falle von "contains" bewirkt ein leeres Element immer eine Übereinstimmung, da jede Zeichenkette eine leere Zeichenkette enthält).
Da die Elemente in VergleichListe nicht als einzelne Parameter behandelt werden, kann die Liste komplett in einer Variable enthalten sein. Tatsächlich muss sie ganz oder teilweise in einer Variable enthalten sein, wenn ihre Länge 16383 Zeichen überschreitet, da dies die maximale Länge einer Skriptzeile ist. Zum Beispiel könnte VergleichListe aus %Liste1%,%Liste2%,%Liste3%
bestehen, wobei jede der Unterlisten eine lange Liste von Elementen enthält.
Bei jedem einzelnen Element in der Liste, das länger als 16384 Zeichen ist, werden die überschüssigen Zeichen als neues Listenelement behandelt. Am besten sollten Sie vermeiden, solche Elemente 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" entspricht der Verwendung von InStr() oder If[Not]InString, außer dass mehrere Vergleichszeichenketten unterstützt werden.
Mit StringCaseSense On
kann der Vergleich Groß-/Kleinschreibung-sensitiv gemacht werden.
Wenn VergleichListe relativ lang ist, kann es via Fortsetzungsbereich in mehrere kurze Zeilen aufgeteilt werden, um die Übersichtlichkeit und Wartbarkeit des Skripts zu verbessern.
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 [not] between Min and Max, IfEqual/Greater/Less, IfInString, StringCaseSense, Blöcke, Else
Prüft, ob var die Dateiendung EXE, BAT oder COM ist.
if var in exe,bat,com MsgBox Die Dateiendung ist von einer ausführbaren Datei.
Prü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.
Prüft, ob var die Ziffer 1 oder 3 enthält.
if var contains 1,3 ; Beachten Sie hier, dass die Werte als Zeichenketten verglichen werden, nicht als Zahlen. MsgBox var enthält die Ziffer 1 oder 3 (var könnte auch eine 1, 3, 10, 21, 23, etc. sein)
Prüft, ob var eines der Elemente in MeineElementeListe ist.
if var in %MeineElementeListe% MsgBox %var% ist in der Liste.
Lässt den Benutzer eine Zeichenkette eingeben und prü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.
Prüft, ob aktiver_titel "Adressliste.txt" oder "Kundenliste.txt" enthält, und prüft, ob es "metapad" oder "Notepad" enthält.
WinGetTitle, aktiver_titel, A if aktiver_titel contains Adressliste.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.