다음을 통해 공유


LIKE 연산자

LIKE 연산자는 문자열이 지정된 패턴과 일치하는지 여부를 결정합니다. 지정된 패턴은 정확히 일치시킬 문자를 포함하거나 메타 문자를 포함할 수 있습니다. 실제로 LIKE 연산자는 다음 표의 와일드카드 문자를 사용하여 부분 문자열과 일치합니다.

문자 설명
[ ] 지정된 범위([a-f]) 또는 집합([abcdef])에 있는 단일 문자.
^ 지정된 범위([^a-f]) 또는 집합([^abcdef])에 있는 단일 문자.
% 0(영)개 이상의 문자를 가진 문자열. 다음 예제에서는 클래스 이름에서 "Win"이 있는 모든 인스턴스를 찾습니다. SELECT * FROM meta_class WHERE __Class LIKE "%Win%"
_ (밑줄) 임의의 한 문자. 쿼리 문자열에 사용되는 모든 리터럴 밑줄은 [](대괄호) 안에 배치하여 이스케이프해야 합니다.

 

예를 들어 다음 PowerShell 코드는 Name 속성이 FirstName으로 시작하는 Win32_operatingSystem 클래스의 모든 인스턴스를 검색합니다.

Get-WmiObject win32_computerSystem -filter "Name LIKE 'FirstName%'"

밑줄은 메타 문자이므로 쿼리 대상에 밑줄이 있는 경우 "[]" 이스케이프 문자가 밑줄을 둘러싸야 합니다. 예를 들어 이름에 이중 밑줄이 있는 모든 클래스를 쿼리할 수 있습니다.

이름에 이중 밑줄이 있는 모든 클래스를 찾으려면 [](대괄호)를 사용하여 두 밑줄을 모두 이스케이프해야 합니다. 예를 들면 다음과 같습니다.

SELECT * FROM meta_class WHERE __CLASS LIKE "%[_][_]%"

NOT을 사용하여 LIKE 문을 부정할 수 있습니다. 이렇게 하려면 NOT을 필드 이름 앞에 직접 배치해야 합니다. 예를 들면 다음과 같습니다.

Get-WmiObject -computerName "." -query 'Select * FROM Win32_Printer WHERE Local="TRUE" AND Network ="False" AND DriverName LIKE "%HP%" AND NOT PortName LIKE "%10.%" AND NOT PortName LIKE "%\\%"'

WQL 연산자