about_Operator_Precedence
간단한 설명
PowerShell 연산자를 우선 순위로 나열합니다.
자세한 설명
PowerShell 연산자를 사용하면 단순하지만 강력한 식을 생성할 수 있습니다. 이 항목에서는 연산자를 우선 순위로 나열합니다. 우선 순위는 여러 연산자가 동일한 식에 나타날 때 PowerShell이 연산자를 평가하는 순서입니다.
연산자의 우선 순위가 같으면 PowerShell은 식 내에 나타날 때 왼쪽에서 오른쪽으로 평가합니다. 예외는 할당 연산자, 캐스트 연산자 및 부정 연산자(!
, -not
, -bnot
)이며 오른쪽에서 왼쪽으로 평가됩니다.
괄호와 같은 엔클로저를 사용하여 표준 우선 순위 순서를 재정의하고 PowerShell이 닫지 않은 부분보다 먼저 식의 묶인 부분을 평가하도록 강제할 수 있습니다.
다음 목록에서 연산자는 계산 순서대로 나열됩니다. 동일한 줄 또는 동일한 그룹의 연산자는 동일한 우선 순위를 갖습니다.
연산자 열에는 연산자가 나열됩니다. 참조 열에는 연산자가 설명된 PowerShell 도움말 항목이 나열됩니다. 토픽을 표시하려면 .를 입력합니다 get-help <topic-name>
.
연산자 | 참조 |
---|---|
$() @() () @{} |
about_Operators |
. ?. (멤버 액세스) |
about_Operators |
:: (정적) |
about_Operators |
[0] ?[0] (인덱스 연산자) |
about_Operators |
[int] (캐스트 연산자) |
about_Operators |
-split (단항) |
about_Split |
-join (단항) |
about_Join |
, (쉼표 연산자) |
about_Operators |
++ -- |
about_Assignment_Operators |
! -not |
about_Logical_Operators |
.. (range 연산자) |
about_Operators |
-f (format 연산자) |
about_Operators |
- (단항/음수) |
about_Arithmetic_Operators |
* / % |
about_Arithmetic_Operators |
+ - |
about_Arithmetic_Operators |
다음 연산자 그룹은 동일한 우선 순위를 갖습니다. 대/소문자를 구분하고 명시적으로 대/소문자를 구분하지 않는 변형의 우선 순위는 동일합니다.
연산자 | 참조 |
---|---|
-split (이진) |
about_Split |
-join (이진) |
about_Join |
-is -isnot -as |
about_Type_Operators |
-eq -ne -gt -ge -lt -le |
about_Comparison_Operators |
-like -notlike |
about_Comparison_Operators |
-match -notmatch |
about_Comparison_Operators |
-in -notIn |
about_Comparison_Operators |
-contains -notContains |
about_Comparison_Operators |
-replace |
about_Comparison_Operators |
목록은 다음 연산자를 우선 순위로 사용하여 여기에서 다시 시작됩니다.
연산자 | 참조 |
---|---|
-band -bnot -bor -bxor -shr -shl |
about_Arithmetic_Operators |
-and -or -xor |
about_Logical_Operators |
다음 항목은 true 연산자가 아닙니다. 식 구문이 아니라 PowerShell 명령 구문의 일부입니다. 할당은 항상 발생하는 마지막 작업입니다.
구문 | 참조 |
---|---|
. (점 원본) |
about_Operators |
& (호출) |
about_Operators |
? <if-true> : <if-false> (Ternary 연산자) |
about_Operators |
?? (null-coalese 연산자) |
about_Operators |
| (파이프라인 연산자) |
about_Operators |
> >> 2> 2>> 2>&1 |
about_Redirection |
&& || (파이프라인 체인 연산자) |
about_Operators |
= += -= *= /= %= ??= |
about_Assignment_Operators |
예제
다음 두 명령은 산술 연산자와 괄호를 사용하여 PowerShell이 식의 묶인 부분을 먼저 평가하도록 하는 효과를 보여 줍니다.
PS> 2 + 3 * 4
14
PS> (2 + 3) * 4
20
다음 예제에서는 로컬 디렉터리에서 읽기 전용 텍스트 파일을 가져오고 변수에 $read_only
저장합니다.
$read_only = Get-ChildItem *.txt | Where-Object {$_.isReadOnly}
다음 예제와 동일합니다.
$read_only = ( Get-ChildItem *.txt | Where-Object {$_.isReadOnly} )
파이프라인 연산자(|
)가 할당 연산자()=
보다 우선 순위가 높기 때문에 cmdlet이 Get-ChildItem
가져오는 파일은 변수에 할당되기 전에 필터링을 위해 cmdlet으로 $read_only
전송 Where-Object
됩니다.
다음 예제에서는 인덱스 연산자가 캐스트 연산자보다 우선하는 것을 보여 줍니다.
이 식은 세 개의 문자열 배열을 만듭니다. 그런 다음 값이 0인 인덱스 연산자를 사용하여 배열에서 첫 번째 문자열인 첫 번째 개체를 선택합니다. 마지막으로 선택한 개체를 문자열로 캐스팅합니다. 이 경우 캐스트는 영향을 주지 않습니다.
PS> [string]@('Windows','PowerShell','2.0')[0]
Windows
이 식은 괄호를 사용하여 인덱스 선택 전에 캐스트 작업을 강제로 수행합니다. 결과적으로 전체 배열은 (단일) 문자열로 캐스팅됩니다. 그런 다음 인덱스 연산자는 문자열 배열의 첫 번째 항목(첫 번째 문자)을 선택합니다.
PS> ([string]@('Windows','PowerShell','2.0'))[0]
W
다음 예제에서는 (보다 큼) 연산자가 (논리 AND) 연산자보다 -and
우선 순위가 높기 때문에 -gt
식의 결과는 FALSE입니다.
PS> 2 -gt 4 -and 1
False
다음 식과 동일합니다.
PS> (2 -gt 4) -and 1
False
-및 연산자의 우선 순위가 더 높은 경우 대답은 TRUE입니다.
PS> 2 -gt (4 -and 1)
True
그러나 이 예제에서는 운영자 우선 순위를 관리하는 중요한 원칙을 보여 줍니다. 사용자가 식을 해석하기 어려운 경우 기본 연산자 우선 순위를 강제로 적용하는 경우에도 괄호를 사용하여 계산 순서를 강제로 적용합니다. 괄호는 스크립트를 읽고 기본 사람들에게 의도를 명확하게 합니다.
참고 항목
PowerShell
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기