Welcome to Our Website

Adam Automator (한국어)

스크립트는 결정을 내릴 수 있습니다. 어떻게? 조건부 논리라는 개념을 사용하여. PowerShell if 문 및 if/else 구조는 조건을 정의하는 일반적인 방법입니다.PowerShell 스크립트를 작성할 때 특정 작업이나 작업을 염두에두고 그렇게합니다. 그러나 작업은 하나 이상의 조건에 따라 하나 이상의 가능한 작업을 가질 수 있습니다. 이 상황은 PowerShell If-Else 구조가 들어오는 곳입니다.,

이 기사에서는 PowerShell If-Else construct 가 무엇인지 배우고 구문과 작동 방식을 이해합니다. 도 배우게 됩니다 예로부터의 일부는 다른 방법으로 사용할 수 있는 PowerShell 는 경우-다른 추가 조건부 로직 처리에서 스크립트가 있습니다.

목차

PowerShell If-Else 구문 이해

PowerShell if-else 구조는 하나 이상의 조건식을 평가합니다. 아래에는 If 문 구문이 표시됩니다. 이 스타일을 때때로 흐름 제어라고합니다.,

if (<test1>) {<statement list 1>}

에서 볼 수 있듯이는 구문 위에 테스트 서로 묶은 괄호(). 테스트를 사용할 수 있습 다른 연산자와 같은 비교 연산자 및 논리 연산자,

문 목록의 코드를 포함한 경우 실행 시험의 결과를 평가합니다.

그런 다음 If 문 그룹에 세 가지 가능한 문이 있습니다. 이것들은 IF,ELSEIF 및 ELSE 문입니다.,

  • if성명을 포함하는 첫 번째 시험을 평가하고,다음 의 첫 번째 문 목록에 포함 괄{}.PowerShell if 문은 존재하는 데 필요한 유일한 문입니다.
  • elseif문은 조건을 추가하는 곳입니다. 여러 조건이 있을 때 여러 개의 ElseIf 문을 추가할 수 있습니다. PowerShell 은 이러한 각 조건을 순차적으로 평가합니다.
  • else문은 조건을 허용하지 않습니다., 이 명령문의 명령문 목록에는 테스트 된 모든 이전 조건이 거짓 인 경우 실행할 코드가 포함되어 있습니다.

PowerShell If-Else 논리 흐름 이해

PowerShell If-Else 가 어떻게 작동하는지 더 이해하려면 논리 흐름을 숙지해야합니다. 아래 다이어그램은 Powershell If-Else 의 기본 흐름을 보여줍니다.,

PowerShell 는 경우-다른 논리의 흐름

경우 문을 실행,PowerShell 실행을 통해 각각 상태를 평가하는 코드인 경우 true 를 반환합니다 또는 거짓입니다. 동작에 대한 요약은 다음과 같습니다.

  • PowerShell 은 테스트 1 에서 조건을 평가합니다.
  • 테스트 1 의 결과가 true 를 반환하면 If 문 목록 내부의 코드가 실행되고 PowerShell 은 If 문을 종료합니다.,
  • 테스트 1 의 결과가 false 를 반환하면 PowerShell 은 다음 ElseIf 문에서 조건(Test n)을 계속 평가합니다.
  • 경우 시험의 결과 n false 를 반환,PowerShell 계속 평가한 상태(테스트 n)에서는 다음 ElseIf 문는 경우,다른 ElseIf 문 존재하는-또는-
  • 경우 시험의 결과 n false 를 반환하는 코드에서 다른 문을 실행합니다. 그런 다음 PowerShell 은 If 문을 종료합니다-또는-
  • 테스트 n 의 결과가 true 를 반환하면 ElseIf 문의 코드가 실행됩니다. 그런 다음 PowerShell 은 If 문을 종료합니다.,

PowerShell 는 경우-다른 문

다음 섹션의 몇 가지 예제를 사용하는 방법 PowerShell 는 경우-다른 문 스크립트를 작성할 때. 한 기술을 배울 수 있는 안내에 사용하는 경우에 문을 실제 상황에 필요를 제공할 수 있습니다.

Single If-Else 조건

가장 기본적인 것으로 시작하는 것은 single If 문입니다. 테스트 할 조건이 하나 뿐인 경우 단일 if 문을 사용해야합니다.

아래의 예는$num변수의 값이 10 보다 큰지 여부를 테스트합니다., 결과가 참이면"$num is greater than 10"라는 결과가 화면에 표시됩니다. 결과가 false 인 경우 PowerShell 은 테스트 할 조건이 하나 뿐이므로 아무 것도하지 않습니다.

$num = 11if ($num -gt 10) { "$num is greater than 10"}

위의 코드를 PowerShell 에 붙여 넣으면 아래에 표시된 결과가 나타납니다.,

단일 경우에는 조건 예

이제를 추가하고 싶다면 기본값 대체””행동이 아닌 단지 PowerShell 아무것도 할 때는 테스트 결과가 거짓을 추가할 수 있습니다 다른 문입니다.

아래 예에서$num변수의 값이 10 보다 크지 않으면 Else 문의 코드가 실행됩니다.

$num = 9if ($num -gt 10){ "$num is greater than 10"}else{ "$num is NOT greater than 10"}

PowerShell 에서 수정 된 코드를 실행하면 아래에 표시된 출력이 제공됩니다.,

의 단면 상태

을 시작으로 PowerShell7.0,새로운 구문에 대한 경우에 문을 도입되었을 사용하여 원 연산자입니다. Single If 문은이 새로운 구문을 잘 활용할 수 있습니다.위의 동일한 예제를 사용하면 코드가 삼항 연산자와 어떻게 보이는지 알 수 있습니다.,

$num = 11$num -gt 10 ? "$num is greater than 10" : "$num is NOT greater than 10"
If 구문을 사용하는 원자

여러한 경우-다른 조건으로 ElseIf

있는 경우 여러 조건,평가하는 필요하신 추가 중 하나 이상 ElseIf 문입니다. Each ElseIf 문에는 테스트 표현식과 실행할 자체 코드가 포함되어 있습니다.,

아래 스크립트를 실행,유지에게 묻지에 대한 과일을 이름을 때까지CTRL+C키 입력 발급,또는 사용자가 입력 문자”X“.

그런 다음 If 문은 일치하는 항목을 찾을 때까지 순서대로 각 조건을 통과합니다. 입력이 조건 중 하나와 일치하지 않으면 Else 문 내부의 코드가 실행됩니다.

아래는 PowerShell 에서 실행할 때 위의 스크립트가 어떻게 동작하는지에 대한 데모입니다.,

여러한 경우-다른 조건

보고한 디스크 공간은 상태

디스크 공간을 보고는 하나의 작업에서 공통되는 시스템 관리자입니다. Windows 시스템에서 고정 디스크의 공간 정보를보고하는 일반적인 방법은 아래 코드를 중심으로 이루어집니다.

Get-CimInstance -ClassName CIM_LogicalDisk | Where-Object {$_.DriveType -eq 3}

정보를 위 코드에서는 반환됩니다 보이는 것과 같은 것 중 하나는 다음과 같이 다음니다.,

일반 디스크 공간 정보 보

당신이 볼 수 있듯이,위의 출력을 보여줍 드라이브 문자와 공간에 값과 다른 속성을 가진. 위의 출력은 괜찮지 만 직관적이지 않습니다. 정보가 표시되는 방식은 디스크 공간이 중요 또는 경고 상태인지 정상 상태인지를 나타내지 않습니다.,

를 사용하여 PowerShell If 개선하는 코드

PowerShell 는 경우-다른 문을 더욱 직관적 인 출력을 얻을 수 있을 추가하여 조건을 확인하는 경우에는 공간이 이상 또는 아래 어느 임계값이 있습니다. 그리고 이러한 임계 값은 사용 가능한 디스크 공간의 상태를 정의합니다.

예 아래 스크립트는 다음과 같은 작업을 수행합니다.

  • 사용하여 변수 값을$Critical,임계값을 정의하는 퍼센트의 여유 공간이 될 것으로 태그 중요합니다.,
  • 변수$Warning의 값을 사용하여 여유 공간의 퍼센트가 경고로 태그 될 임계 값을 정의하십시오.
  • 모든 고정된 디스크 정보는 로컬 컴퓨터에서
  • 루프를 통해 모든 디스크 여유 공간을 확인하고 태그 그 상태입니다.
    • 여유 공간 백분율이$Warning변수의 값보다 높으면 디스크 공간 상태가 정상적으로 태그됩니다.,
    • 여유 공간 백분율이$Critical변수의 값보다 높으면 디스크 공간 상태가 경고로 태그됩니다.
    • 경우 무료 비율 공간보다 작거나 같은 값의$Criticalvariable,디스크 공간은 상태에 태그가 있으로 중요합니다.
  • 를 구성하는 개체의 속성을'Drive Letter','Drive Name','Total Space (GB)','Free Space (GB)','Free Space (%)',and'Status'.,
  • 최종 보고서 반환

아래 코드를 복사하고 파일 이름Get-DiskSpace.ps1로 스크립트를 저장하십시오. 을 변경하는 것을 잊지 마세요 값의$Critical$Warning변수를 테스트하려는 경우 다른 임계값이 있습니다.스크립트가 저장되면 PowerShell 에서 이름을 호출하여 테스트하십시오. 아래는이 스크립트가 어떻게 작동하는지에 대한 샘플 데모입니다.,

디스크 공간을 상태 명령 출력

에서 볼 수 있듯이 출력,상태에 대한 각각의 디스크에 의해 결정됩 디스크 공간이는 비율의 결과를 사용하여 여러 조건으로 PowerShell 는 경우-다른 사람.

다중 및 중첩 If-Else

else블록에 정의 된 조건을 가진 if-else 문이 있다고 가정 해 봅시다., If-else 문이 실행될 때if블록 내부의 코드가 false 를 반환하면else블록이 호출됩니다.

else블록 내부에서 다른 조건부 테스트를 수행해야합니다. 결과적으로 다른 If-Else 문이 필요합니다. 이 시나리오를 중첩 된 If-Else 라고합니다. 중첩 된 If-Else 문은 내부 If-Else 가 외부 If-Else 의 작업 결과에 의존하는 경우 일반적으로 사용됩니다.

다중 및 중첩 된 If-Else 문을 사용하면 매우 혼란 스러울 수 있습니다., 중요한 점은 스캐 폴드 배치를 기억하고 코드를 들여 쓰기하는지 확인하는 것입니다. 코드를 들여 쓰기하면 If-Else 문을 쉽게 인식하고 분리하는 데 도움이됩니다.

다중/중첩 된 If-Else 문의 예

아래의 예제 스크립트는 다중 및 중첩 된 If-Else 가 서로의 결과에 종속 될 수있는 방법을 보여줍니다. 아래 코드의 논리는 다음과 같습니다.

  • $SendEmail$false인 경우 스크립트는 아무 것도하지 않고 종료됩니다.,
  • 경우에는$SendEmail$true,다음$From$To변수해야함되지 않은 null 입니다. 그렇지 않으면$abortFlag가 1 로 설정됩니다.
  • 경우에는$SendEmail$true$CCEnabled$true,다음$CC변수해야함되지 않은 null 입니다. 그렇지 않으면$abortFlag가 1 로 설정됩니다.,
  • 경우에는$SendEmail$true$BCCEnabled$true,다음$BCC변수해야함되지 않은 null 입니다. 그렇지 않으면$abortFlag가 1 로 설정됩니다.
  • $abortFlag값이 1 이면 이 시점에서 스크립트가 종료되고 계속되지 않습니다.
  • $abortFlag값이 0 이면 스크립트는 끝날 때까지 계속됩니다.

아래 코드를 복사하여Send-MyMail.ps1로 저장하십시오. 아직 값을 변경하지 마십시오.,파일을 저장했으면 아래 그림과 같이 PowerShell 에서 실행하십시오. 아래 데모는 변수 값이 변경되지 않을 때 스크립트의 결과를 보여줍니다.

중첩된 경우-다른 예

다음에,스크립트를 수정하고 업데이트 모든 변수를 제대로 이와 같은 아래 조각.

변수를 편집 한 후 스크립트를 저장하고 다시 실행하십시오. 아래에서 볼 수 있듯이 동일한 결과를 보여 주어야합니다.,

중첩된 다른 경우-다른 예

이제,수정,변수 및 다양한 조합을 시도하는 테스트 방법 중첩된 경우-다른 사람은 영향을 미칠 수 있습니다. 스스로 수정하고 테스트하면 논리를 더 이해하는 데 도움이됩니다.

요약

이 기사에서는 조건부 논리 구조–PowerShell If-Else 구조에 대해 배웠습니다., If-Else 문을 사용하면 스크립터가 조건부 논리를 공식화하고 테스트 결과를 기반으로 스크립트의 작업을 지시 할 수 있습니다.

으로 예는 다음과 같은 이 문서,당신은 배운 방법과 기법에서 어떻게 사용하는 경우-다른 문장을 만들 때 결정에 기반 코드입니다. If-Else 는 단일 조건을 사용하여 간단 할 수 있으며 중첩 된 If-Else 문을 더 깊이 파고 들면서 더 복잡해집니다.

If-Else 진술에 대해 어떻게 생각하십니까? 이 기사를 읽은 후에 점점 더 많이 사용하게 될 것이라고 생각하는 것입니까?, 여기서 습득 한 지식을 어디에 적용 할 수 있는지 다른 어떤 목적으로 생각할 수 있습니까?

추가 읽기

  • If
  • Back to Basics:PowerShell foreach 루프

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다