Where-Object
명령 파이프라인을 따라 전달될 개체를 제어하는 필터를 만듭니다.
구문
Where-Object [-FilterScript] <scriptblock> [-InputObject <psobject>] [<CommonParameters>]
설명
Where-Object cmdlet은 전달된 개체 집합에서 개체를 선택합니다. 이 cmdlet은 스크립트 블록을 필터로 사용하고 각 개체에 대한 스크립트 블록을 평가합니다. 평가 결과가 True이면 개체가 반환됩니다. 평가 결과가 True가 아니면 개체가 무시됩니다.
매개 변수
-FilterScript <scriptblock>
개체를 필터링하는 데 사용되는 스크립트 블록을 지정합니다. 스크립트 블록은 중괄호({})로 묶으십시오.
필수 여부 |
true |
위치 |
1 |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-InputObject <psobject>
필터링할 개체를 지정합니다. 개체를 Where-Object로 파이프할 수도 있습니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
true (ByValue) |
와일드카드 문자 적용 여부 |
false |
<CommonParameters>
이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.
입력 및 출력
입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.
입력 |
System.Management.Automation.PSObject 필터링할 개체를 Where-Object로 파이프할 수 있습니다. |
출력 |
예 1
C:\PS>get-service | where-object {$_.Status -eq "Stopped"}
설명
-----------
이 명령은 현재 중지된 모든 서비스 목록을 가져옵니다. "$" 기호는 Where-Object cmdlet으로 전달되는 각 개체를 나타냅니다.
예 2
C:\PS>get-process | where-object {$_.workingset -gt 25000*1024}
설명
-----------
이 명령은 작업 집합이 25,000KB보다 큰 프로세스를 나열합니다. WorkingSet 속성 값은 바이트 단위로 저장되므로 25,000 값에 1,024가 곱해집니다.
예 3
C:\PS>get-process | where-object { $_.ProcessName -match "^p.*" }
설명
-----------
이 명령은 문자 "p"로 시작하는 ProcessName 속성을 가진 프로세스를 가져옵니다. 일치 연산자를 사용하면 Where 절에 정규식을 사용할 수 있습니다.
예 4
C:\PS>get-process -name svchost | where-object {$True}
설명
-----------
이 명령은 "svchost"라는 모든 프로세스를 나열합니다.
Where-Object cmdlet은 일반적으로 현재 파이프라인($_)의 개체에 대한 참조를 포함하는 스크립트 블록을 평가하여 결과를 부울 유형(True 또는 False)으로 캐스트합니다. 결과가 True이면 개체가 반환됩니다. 그렇지 않은 경우에는 개체가 무시됩니다.
이 경우 스크립트 블록은 True를 반환하므로 모든 개체가 반환됩니다.