Articles

스위치는 경우에 PowerShell

케이스 스위치 PowerShell

케이스 스위치 PowerShell

한 소개로 전환한 경우에 PowerShell

스위치 기능에 PowerShell 을 처리하는 데 사용되는 여러면 진술서 또는 다른 조항은 보충 여러 조건의 경우/경우 다른/니다. 스크립트 또는 함수에서 단일 조건을 확인하려면 If/else 문을 사용할 수 있지만 IF 문을 더 평가하려는 경우 Switch 를 사용하십시오.

스위치는 여러 If 문과 비교하는 것이 더 좋으며 구현하기 쉽고 코딩에 간단하게 사용할 수 있습니다. 각 문 아래에 여러 조건이 있으며 그 중 하나가 만족할 때 작업이 수행됩니다.

시작 귀하의 데이터 과학 물론

Hadoop,데이터 과학,통계&기타

문:

Switch (<Value>)
{
<Condition1> {Action1}
<Condition2> {Action2}
}

전체 구

Switch ( <value> ) {
"String" | Number | Variable | { expression } { statementlist }
default { statementlist }
}

또는

Switch -file {
"String" | Number | Variable | { expression } { statementlist }
default { statementlist }
}

매개 변수를 스위치의 경우에 PowerShell

  • Regex: 그것은 또한이라고 합니다. 조건의 값에 대해 정규식 검사를 수행합니다. 정규식을 사용하는 경우 와일드 카드 및 Exacts 는 무시됩니다. 또한 일치 절이 문자열이 아닌 경우이 매개 변수는 무시됩니다.
  • 와일드카드:조건이 와일드카드 문자열임을 나타냅니다. 와일드 카드를 사용하는 경우 Regex 및 Exacts 는 무시됩니다. 또한 일치 절이 문자열이 아닌 경우이 매개 변수는 무시됩니다.
  • Exact:정확한 문자열에 대해 일치를 수행합니다. Exact 를 사용하면 와일드 카드와 정규식이 무시되고 match 절이 문자열이 아닌 경우이 매개 변수는 무시됩니다.
  • CaseSensitive:이 매개 변수 상태를 확인과 일치하는 정확하게 전달된 값(대소문자 구분)일치하지 않을 경우 그 이 매개 변수는 무시됩니다. 또한 문자열 값이 필요합니다.
  • File:파일 경로를 문자열 값이 아닌 입력 값으로 사용합니다. 여러 파일 매개 변수가 전달되면 마지막 매개 변수 만 가져옵니다. 파일의 각 줄은 조건에 대해 읽고 평가되며 조건이 일치하면 해당 값을 실행하거나 작성된 메시지를 표시합니다.

순서도

순서도

순서도

Powershell 에서 스위치는 어떻게 작동합니까?

위의 다이어그램과 같이 값(문자열,정수,플로트 또는 기타 데이터 유형),배열,와일드 카드,파일 등. 전달 된 다음 조건을 하나씩 일치시키기 시작하고 조건이 일치하면 스크립트가 해당 블록을 실행합니다. 에 대한 여러 개의 일치 값을,여러 scrips 블록 실행되지 않는 경우에 일치하는 값이 발견되는 경우 기본 조건을 지정한 후 실행하는 블록 그렇지 않으면 null 을 출력한다.

PowerShell 에서 스위치 케이스의 예

주어진 예제를 보자.

예제#1

1. 문자열,정수 값이 전달 된 간단한 스위치 기능.나는 이것이 어떻게 작동하는지 이해하지 못한다고 생각합니다.:

powershell1

powershell1

코드:

switch("data"){
"abc"{"Abc executed"}
"xyz"{"Xyz Executed"}
"data"{"Data Executed"}
}

출력:

powershell2

powershell2

면 지금,무엇 매개 변수가 일치하지 않습니다. 아래에 주어진 예로서,5 는 스위치 케이스 중 하나와 일치하지 않습니다. 이 경우 출력은 null 이됩니다.

코드:

switch (5) {
1 {"One"}
2 {"Two"}
3 {"Three"}
}

상기 문제점을 극복하기위한 기본 요구를 지정하고 기본 블록을 실행할 때 아무도의 매개 변수와 일치합니다.

코드:

switch (5) {
1 {"One"}
2 {"Two"}
3 {"Three"}
default{"No Match Found"}
}

출력:

powershell3

powershell3

예#2

우리 주 예:

차이면 다른 경우 다른 스위치입니다. 아래 예에서 스위치 기능을 사용하여 스크립트를 작성하는 것이 얼마나 쉬운 지 이해할 수 있습니다.

코드:

$time = 3
if($time -eq 1){"It's 1 O'Clock"}
elseif ($time -eq 2) {"It's 2 O'Clock"}
elseif ($time -eq 3) {"It's 3 O'Clock"}
else {"No Match Found"}

$time = 3
switch ($time) {
1 {"It's 1 O'Clock"}
2 {"It's 2 O'Clock"}
3 {"It's 3 O'Clock"}
default{"No Match found"}
}

Output:

powershell 4

powershell 4

Execution time for both the methods.

Code:

$time = 3
Measure-Command {
if($time -eq 1){"It's 1 O'Clock"}
elseif ($time -eq 2) {"It's 2 O'Clock"}
elseif ($time -eq 3) {"It's 3 O'Clock"}
else {"No Match Found"}
}

TotalMilliseconds :

TotalMilliseconds

TotalMilliseconds

Code:

$time = 3
Measure-Command {
switch ($time) {
1 {"It's 1 O'Clock"}
2 {"It's 2 O'Clock"}
3 {"It's 3 O'Clock"}
default{"No Match found"}
}
}

TotalMilliseconds:

powershell21

powershell21

차이:31.3154 밀리초 단위

이러한 차이가 광대를 작성할 때 대규모 또는 스크립트 함수 안에 있습니다.1. 스위치 Regex 매개 변수

경우 Regex 에서 언급한 스위치,그것을 평가하는 식으로 전달된 값과하는 경우 부분의 조건과 일치하는 그런 다음 그것을 실행되는 작업입니다.아래 예제를 고려하십시오.나는 이것이 어떻게 작동하는지 잘 모르겠습니다.:이 경우 정규식을 추가 한 후powershell 5powershell5

powershell5

정규식을 추가 한 후.

코드:

Switch -Regex ("Donkey"){
"Dog" {"Dog is Mentioned"}
"Cat" {"Cat is Mentioned"}
"Don" {"Donkey is Mentioned"}
"key" {"Donkey is mentioned again"}
default {"Nothing is mentioned"}
}

출력:

powershell6

powershell6

2. 와일드 카드 매개 변수가있는 스위치

와일드 카드는 Like 매개 변수와 유사하게 작동합니다.

코드:

$msg = "Error, WMI connection failed"
Switch -Wildcard ($msg) {
"Error*" {"WMI Error"}
"Warning*" {"WMI Warning"}
"Successful*" {"WMI Connection Successful"}
}

출력:

powershell7PNG

powershell7PNG

3. 정확한 매개 변수가있는 스위치

정확한 기능은 스위치에서 기본입니다. 당신이 그것을 사용하든하지 않든 상관 없습니다. 그러나 동시에 두 매개 변수를 사용할 때 마지막 매개 변수가 우선합니다.

코드:

Switch -Regex -Exact ("Hello"){
"He" {"Hello World"}
"Hi" {"Hi World"}
Default {"No World"}
}

출력:

powershell8PNG

powershell8PNG

코드:

Switch -Exact -Regex ("Hello"){
"He" {"Hello World"}
"Hi" {"Hi World"}
Default {"No World"}
}

출력:

powershell9PNG

powershell9PNG

4. 파일 매개 변수가있는 스위치

매개 변수로 스위치에 직접 파일 경로를 제공 할 수 있습니다. 변수 표현식을 제공하는 대신 파일에 대한 경로가있는 파일을 사용할 수 있습니다.나는 이것이 내가하는 일이 아니라는 것을 알고 있지만,내가하는 일은 내가 할 수있는 일이 아니다. 2png

powershell 의 스위치 케이스. 2PNG

현재 항목으로 작업하려면$PSItem 또는$_를 사용할 수 있습니다.5. CaseSensitive 매개 변수가있는 스위치

스위치에서 Casesensitive 매개 변수를 사용하면 조건이 각 문자별로 정확히 일치해야합니다.

코드:

switch -CaseSensitive ("Hello") {
"HeLlo" {"This is different HeLlo"}
Default {"This is not Matching"}
}

출력:

powershell10PNG

powershell10PNG

6. 전달하는 배열의 값 스위치 기능

단순한 배열

switch (10,12) {
9 { "Nine" }
10 { "Ten" }
11 {"Eleven"}
12 {"Twelve"}
Default {"None"}
}

출력:

전달하는 배열

전달하는 배열

통과 배열체

코드:

$VMOps = @(
"VM_Delete"
"VM_Create"
)
switch ($VMops) {
"VM_Delete" {"VM Delete Operation"}
"VM_Create" {"VM Create Operation"}
"VM_Shutdown" {"VM Shutdown Operation"}
}

출력:

powershell12PNG

powershell12PNG

7. Break condition

break condition 을 지정하면 해당 루프에서 작업이 중단되고 추가 실행을 계속할 수 없습니다. 이것은 조건이 만족되고 실행 시간이 더 빨라질 때 추가 단계를 확인하고 싶지 않을 때 꽤 도움이됩니다.나는 이것이 어떻게 작동하는지 이해하지 못한다고 생각합니다.:

breakcondition

breakcondition

를 통지하는 경우,하나만 있행하고 다음에서 종료 스위치 기능입니다.8. Continue Condition

Continue 매개 변수는 특정 반복을 건너 뛰는 데 사용됩니다. 예를 들어 있는 경우 3 개의 항목과 일치한 다음 그것을 실행됩니다 첫째 조건과 일치하는 경우 다음 건너뛰기 다른 단계로 이동한 다음 단계입니다.나는 이것이 어떻게 작동하는지 잘 모르겠습니다.:

계속 상태

계속 상태

당신이 볼 수 있듯이 하나만 있으로 전달된 인수(‘안녕하세요’),실행하는 첫 번째 블록만기 때문에 표현하는 다른 이가 없음 인수는 왼쪽에 실행하는 스크립트의 종료됩니다.

  • 하나 더 혼합 된 예를 깨고 스위치를 계속합니다.

코드:

switch ('Alpha','Beta','Delta') {
"Alpha" {'First Block Executes'
continue}
'Beta' {'Second Block Executes'
break }
'Delta' {'This will not Execute'}
}

출력:

powershell15PNG

powershell15PNG

결론

모두 모두,스위치보다 훨씬 더 구현하는 경우 여러 및 조건에 더 많은 기능을 제공합 및 감소에서 수행 시간입니다.

추천 기사

이었습 가이드는 스위치 케이스에 있습니다. 여기에서는 Powershell 에서 switch case 의 구문,매개 변수 및 예제에 대해서도 설명합니다. 또한 자세한 내용을 보려면 다음 기사를 살펴볼 수 있습니다-

  1. 쉘 스크립팅이란 무엇입니까?
  2. PowerShell 명령
  3. PowerShell 운영
  4. 사용 Powershell
  5. 가이드 배열에 PowerShell 예제와 함께
  6. 의 예에는 Regex PowerShell
  7. 완전한 가이드를 함수에서 쉘 스크립트
  8. 알코에서 쉘 스크립트
  9. 예를 스위치의 경우에는 쉘 스크립트
  10. Python 스위치 케이스|구현하는 방법?
3 공유