수색…
소개
switch 문을 사용하면 변수 목록에 대해 동등 함을 테스트 할 수 있습니다. 각 값을 대 / 소문자 라고하며, 켜져 있는 변수는 각 대문자로 확인됩니다. 일련의 옵션 중에서 선택할 수 있지만 긴 일련의 if 문을 작성하지 않고도 스크립트를 작성할 수 있습니다.
비고
이 항목에서는 스크립트의 흐름을 분기하는 데 사용되는 switch 문에 대해 설명합니다. 부울 플래그로 함수에 사용되는 스위치 매개 변수 와 혼동하지 마십시오.
간단한 스위치
switch 문은 단일 테스트 값을 여러 조건과 비교하고 성공적인 비교를 위해 연관된 작업을 수행합니다. 여러 개의 일치 / 작업이 발생할 수 있습니다.
주어진 다음 스위치를 ...
switch($myValue)
{
'First Condition' { 'First Action' }
'Second Condition' { 'Second Action' }
}
$myValue
가 'First Condition'
으로 설정되면 'First Action'
이 출력됩니다.
$myValue
가 'Second Condition'
으로 설정되면 'Section Action'
이 출력됩니다.
$myValue
가 두 조건 중 하나와 일치하지 않으면 아무 것도 출력되지 않습니다.
정규식 매개 변수 사용하여 문 전환
-Regex
매개 변수를 사용하면 switch 문이 조건에 대해 정규 표현식 일치를 수행 할 수 있습니다.
예:
switch -Regex ('Condition')
{
'Con\D+ion' {'One or more non-digits'}
'Conditio*$' {'Zero or more "o"'}
'C.ndition' {'Any single char.'}
'^C\w+ition$' {'Anchors and one or more word chars.'}
'Test' {'No match'}
}
산출:
One or more non-digits
Any single char.
Anchors and one or more word chars.
브레이크가있는 간단한 스위치
switch 키워드에서 break
키워드를 사용하여 모든 조건을 평가하기 전에 명령문을 종료 할 수 있습니다.
예:
switch('Condition')
{
'Condition'
{
'First Action'
}
'Condition'
{
'Second Action'
break
}
'Condition'
{
'Third Action'
}
}
산출:
First Action
Second Action
두 번째 조치에서 break
키워드로 인해 세 번째 조건은 평가되지 않습니다.
와일드 카드 매개 변수가있는 스위치 문
-Wildcard
매개 변수를 사용하면 switch 문에서 조건에 대해 와일드 카드 일치를 수행 할 수 있습니다.
예:
switch -Wildcard ('Condition')
{
'Condition' {'Normal match'}
'Condit*' {'Zero or more wildcard chars.'}
'C[aoc]ndit[f-l]on' {'Range and set of chars.'}
'C?ndition' {'Single char. wildcard'}
'Test*' {'No match'}
}
산출:
Normal match
Zero or more wildcard chars.
Range and set of chars.
Single char. wildcard
정확한 매개 변수로 명령문 전환
-Exact
매개 변수는 switch 문이 문자열 조건에 대해 대소 문자를 정확히 구분하지 않고 일치하도록 수행합니다.
예:
switch -Exact ('Condition')
{
'condition' {'First Action'}
'Condition' {'Second Action'}
'conditioN' {'Third Action'}
'^*ondition$' {'Fourth Action'}
'Conditio*' {'Fifth Action'}
}
산출:
First Action
Second Action
Third Action
관련 조건이 입력과 일치하기 때문에 첫 번째부터 세 번째 작업이 실행됩니다. 네 번째와 다섯 번째 조건의 정규식 및 와일드 카드 문자열은 일치하지 않습니다.
네 번째 조건은 정규식 일치가 수행되는 경우 입력 문자열과 일치하지만이 경우에는 무시되므로 무시됩니다.
CaseSensitive 매개 변수를 사용하여 Switch 문
-CaseSensitive
매개 변수는 조건에 대해 대소 문자를 정확하게 일치시키는 switch 문을 시행합니다.
예:
switch -CaseSensitive ('Condition')
{
'condition' {'First Action'}
'Condition' {'Second Action'}
'conditioN' {'Third Action'}
}
산출:
Second Action
두 번째 작업은 대 / 소문자를 구분할 때 'Condition'
문자열과 정확히 일치하는 유일한 조건이기 때문에 실행되는 유일한 작업입니다.
파일 매개 변수로 명령문 전환
-file
매개 변수는 switch 문이 파일로부터 입력을 수신 할 수있게합니다. 파일의 각 행은 switch 문에 의해 평가됩니다.
예제 파일 input.txt
:
condition
test
스위치 문 예 :
switch -file input.txt
{
'condition' {'First Action'}
'test' {'Second Action'}
'fail' {'Third Action'}
}
산출:
First Action
Second Action
기본 조건의 간단한 스위치
Default
키워드는 다른 조건이 입력 값과 일치하지 않을 때 작업을 실행하는 데 사용됩니다.
예:
switch('Condition')
{
'Skip Condition'
{
'First Action'
}
'Skip This Condition Too'
{
'Second Action'
}
Default
{
'Default Action'
}
}
산출:
Default Action
표현식이 포함 된 명령문 전환
조건은 표현식 일 수도 있습니다.
$myInput = 0
switch($myInput) {
# because the result of the expression, 4,
# does not equal our input this block should not be run.
(2+2) { 'True. 2 +2 = 4' }
# because the result of the expression, 0,
# does equal our input this block should be run.
(2-2) { 'True. 2-2 = 0' }
# because our input is greater than -1 and is less than 1
# the expression evaluates to true and the block should be run.
{ $_ -gt -1 -and $_ -lt 1 } { 'True. Value is 0' }
}
#Output
True. 2-2 = 0
True. Value is 0