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

변수의 내용이 목록에 있는 항목 중 하나에 일치하는지 점검합니다.

if Var in MatchList
if Var not in MatchList

if Var contains MatchList
if Var not contains MatchList

매개변수

Var

내용을 점검할 변수의 이름. "in" 연산자는 정확하게 리스트 항목에 부합하기를 요구합니다. "contains" 연산자는 부합이 더 쉽게 일어납니다: Var에 리스트 항목 중 하나가 부문자열로 포함되어 있기만 하면 부합합니다.

MatchList

쉼표로-가른 문자열 리스트. 각 문자열은 Var의 내용과 비교해 부합합니다. 가르는 쉼표 둘레의 스페이스나 탭은 의미가 있습니다. 부합 문자열의 일부가 된다는 뜻입니다. 예를 들어, MatchListABC , XYZ가 설정되면 Var에는 반드시 ABC와 뒤에 하나의 스페이스가 담기거나 또는 XYZ와 그 앞에 스페이스 하나가 들어 있어야 부합할 수 있습니다.

연속적인 두 개의 쉼표는 글자 그대로의 쉼표 하나가 결과입니다. 예를 들어, 다음은 글자 그대로의 쉼표 하나를 string1의 끝에 생산합니다: if Var in string1,,,string2. 비슷하게, 다음 목록에는 항목 하나가 들어 있고 그 안에 글자 그대로의 쉼표가 하나 들어 있습니다: if Var in single,,item. 목록 안에 빈 항목을 포함하려면, 첫 문자를 다음 예제와 같이 쉼표로 만드십시오: if Var in ,string1,string2 ("contains" 연산자를 사용할 때, 빈 항목은 언제나 부합합니다. 왜냐하면 빈 문자열은 모든 문자열에 있기 때문입니다).

MatchList 안의 항목들은 개별적인 매개변수로 취급되지 않기 때문에, 리스트는 변수 안에 완전히 포함될 수 있습니다. 실제로, 그의 길이가 16383 문자를 넘어서면 변수 안에 일부만 포함됩니다. 그 길이가 스크립트 줄의 최대 길이이기 때문입니다. 예를 들어, MatchList%List1%,%List2%,%List3%으로 구성될 수 있습니다 -- 여기에서 각각의 부목록은 부합할 방대한 리스트가 포함되어 있습니다.

목록에서 16384 문자보다 긴 항목은 초과된 문자들을 새로운 리스트 항목으로 취급합니다. 그래서, 보통 그런 항목은 피하는 것이 가장 좋습니다.

논평

언제나 숫자순이 아니라 알파벳 순으로 비교됩니다. 예를 들어, 문자열 "11"는 리스트 항목 "11.0"과 일치하지 않습니다.

The "contains" operator is the same as using InStr() or If[Not]InString except that multiple search strings are supported (any one of which will cause a match).

StringCaseSense On을 사용하면 대소문자를 구분해 비교할 수 있습니다.

MatchList가 길면, 여러 개의 짧은 줄로 나눌 수 있습니다. 계속 섹션을 사용하면 되는데, 이는 가독성과 유지관리성도 향상시켜 줍니다.

The operators "in" and "contains" are not supported in expressions. Instead, use If statements such as if (Var ~= "i)\A(Value1|Value2)\z") for "in" or if (Var ~= "i)Value1|Value2") for "contains" to simulate the behavior of these operators.

if var between, IfEqual/Greater/Less, IfInString, StringCaseSense, 블록, Else

예제

Checks whether var is the file extension exe, bat or com.

if var in exe,bat,com
    MsgBox 파일 확장자가 실행 유형입니다.

Checks whether var is the prime number 1, 2, 3, 5, 7 or 11.

if var in 1,2,3,5,7,11 ; 리스트 안에 스페이스를 회피합니다.
    MsgBox %var%는 소수입니다.

Checks whether var contains the digit 1 or 3.

if var contains 1,3  ; 값들을 문자열로 비교한다는 것을 주목하십시오. 숫자로 비교하지 않습니다.
    MsgBox Var에 1 또는 3이 담겨 있습니다 (Var는 1, 3, 10, 21, 23, 등등이 될 수 있습니다.)

Checks whether var is one of the items in MyItemList.

if var in %MyItemList%
    MsgBox %var%는 목록 안에 있습니다.

Allows the user to enter a string and checks whether it is the word yes or no.

InputBox, UserInput, Enter YES or NO
if UserInput not in yes,no
    MsgBox 입력이 유효하지 않습니다.

Checks whether active_title contains "Address List.txt" or "Customer List.txt" and checks whether it contains "metapad" or "Notepad".

WinGetTitle, active_title, A
if active_title contains Address List.txt,Customer List.txt
    MsgBox 원하는 창 중 하나가 활성화 상태입니다.
if active_title not contains metapad,Notepad
    MsgBox 그러나 메타패드에도 노트패드에도 파일이 열려 있지 않습니다.