about_Language_Keywords

업데이트 날짜: 2014년 5월

적용 대상: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0

항목

about_Language_Keywords

간단한 설명

Windows PowerShell® 스크립트 언어의 키워드에 대해 설명합니다.

자세한 설명

Windows PowerShell의 언어 키워드는 다음과 같습니다. 자세한 내용은 키워드에 대한 정보 항목과 표 뒤에 나오는 정보를 참조하세요.

        Keyword            Reference
        -------            ---------
        Begin              about_Functions, about_Functions_Advanced
        Break              about_Break, about_Trap
        Catch              about_Try_Catch_Finally
        Continue           about_Continue, about_Trap
        Data               about_Data_Sections
        Do                 about_Do, about_While 
        DynamicParam       about_Functions_Advanced_Parameters
        Else               about_If 
        Elseif             about_If 
        End                about_Functions, about_Functions_Advanced_Methods
        Exit               Described in this topic.
        Filter             about_Functions
        Finally            about_Try_Catch_Finally
        For                about_For
        ForEach            about_ForEach
        From               Reserved for future use.
        Function           about_Functions, about_Functions_Advanced
        If                 about_If
        In                 about_ForEach
        InlineScript       about_InlineScript
        Parallel           about_Parallel, about_ForEach-Parallel
        Param              about_Functions
        Process            about_Functions, about_Functions_Advanced
        Return             about_Return
        Sequence           about_Sequence
        Switch             about_Switch
        Throw              about_Throw, about_Functions_Advanced_Methods
        Trap               about_Trap, about_Break, about_Try_Catch_Finally
        Try                about_Try_Catch_Finally
        Until              about_Do
        While              about_While, about_Do
        Workflow           about_Workflows

언어 키워드

      Begin 
      -----

함수 본문의 한 부분을 DynamicParam, Process 및 End 키워드와 함께 지정합니다. Begin 문 목록은 파이프라인에서 개체를 받기 전에 한 번 실행됩니다.

구문:

          function <name> { 
              DynamicParam {<statement list>}
              begin {<statement list>}
              process {<statement list>}
              end {<statement list>}
          }
      Break
      -----

스크립트가 루프를 종료하도록 합니다.

구문:

          while (<condition>) {
              <statements>
                   ...
              break 
                   ...
              <statements> 
          }
      Catch
      -----

함께 제공되는 Try 문 목록에서 오류가 발생하면 실행할 문 목록을 지정합니다. 오류 형식에는 대괄호가 필요합니다. 두 번째 대괄호 쌍은 오류 형식이 선택 사항임을 나타냅니다.

구문:

          try {<statement list>}
          catch [[<error type>]] {<statement list>}
      Continue
      --------

스크립트가 루프 실행을 중지하고 조건으로 돌아가도록 합니다. 조건을 충족하면 스크립트가 루프를 다시 시작합니다.

구문:

          while (<condition>) {
              <statements>
                  ...
              continue 
                  ...
              <statements> 
          }
      Data   
      ----

스크립트에서 데이터를 스크립트 논리와 격리하는 섹션을 정의합니다. If 문과 몇몇 제한된 명령을 포함할 수도 있습니다.

구문:

      data <variable> [-supportedCommand <cmdlet-name>] {<permitted content>}
      Do   
      --

While 또는 Until 키워드와 함께 루핑 구문으로 사용됩니다. Windows PowerShell에서는 While을 사용하는 루프와 달리 문 목록을 한 번 이상 실행합니다.

구문:

          do {<statement list>} while (<condition>)

          do {<statement list>} until (<condition>)
      DynamicParam
      ------------

함수 본문의 한 부분을 Begin, Process 및 End 키워드와 함께 지정합니다. 동적 매개 변수는 런타임에 추가됩니다.

구문:

          function <name> { 
              DynamicParam {<statement list>}
              begin {<statement list>}
              process {<statement list>}
              end {<statement list>}
          }
      Else
      ----

If 키워드와 함께 기본 문 목록을 지정하는 데 사용됩니다.

구문:

          if (<condition>) {<statement list>}
          else {<statement list>}
      Elseif
      ------

If 및 Else 키워드와 함께 추가 조건문을 지정하는 데 사용됩니다. Else 키워드는 선택 사항입니다.

구문:

          if (<condition>) {<statement list>}
          elseif (<condition>) {<statement list>}
          else {<statement list>}
      End
      ---

함수 본문의 한 부분을 DynamicParam, Begin 및 End 키워드와 함께 지정합니다. End 문 목록은 파이프라인에서 모든 개체를 받은 후 한 번 실행됩니다.

구문:

          function <name> { 
              DynamicParam {<statement list>}
              begin {<statement list>}
              process {<statement list>}
              end {<statement list>}
          }
      Exit
      ----

Windows PowerShell이 스크립트 또는 Windows PowerShell 인스턴스를 종료하도록 합니다.

'powershell.exe –File <path to a script>'를 실행할 때 exit 문을 사용하여 %ERRORLEVEL% 변수를 0 이외의 값으로 설정할 수 있습니다. 다음 예제에서 사용자는 'exit 4'를 입력하여 오류 수준 변수 값을 4로 설정합니다.

          C:\Users\bruce\documents\test>type test.ps1
          1
          2
          3
          exit 4

          C:\Users\bruce\documents\test>powershell -file ./test.ps1
          1
          2
          3

          C:\Users\bruce\documents\test>echo %ERRORLEVEL%
          4

powershell.exe를 File 매개 변수와 함께 사용하면 .ps1(스크립트) 파일 자체에는 스크립트 실행 중에 발생하는 오류 또는 예외를 처리하는 지침이 포함되어야 합니다. 스크립트의 실행 후 상태를 지정하려면 exit 문만 사용해야 합니다.

구문:

          exit
          exit <exit code>
      Filter 
      ------

각 입력 개체에 대해 문 목록이 한 번 실행되는 함수를 지정합니다. Process 블록만 포함된 함수와 같은 효과가 있습니다.

구문:

          filter <name> {<statement list>}
      Finally
      -------

Try 및 Catch와 연결된 문 뒤에 실행되는 문 목록을 정의합니다. Finally 문 목록은 CTRL+C를 눌러 스크립트를 종료하거나 스크립트에서 Exit 키워드를 사용하는 경우에도 실행됩니다.

구문:

          try {<statement list>}
          catch [<error type] {<statement list>}
          finally {<statement list>}
      For   
      ---

조건을 사용하여 루프를 정의합니다.

구문:

          for (<initialize>; <condition>; <iterate>) {<statement list>}
      ForEach
      -------

컬렉션의 각 멤버를 사용하여 루프를 정의합니다.

구문:

          ForEach (<item> in <collection>){<statement list>}
      From
      -----

나중에 사용하도록 예약됩니다.

      Function
      --------

재사용 가능한 코드의 명명된 문 목록을 만듭니다. 함수가 속한 범위에 이름을 지정할 수 있습니다. 또한 Param 키워드를 사용하여 하나 이상의 명명된 매개 변수를 지정할 수 있습니다. 함수 문 목록 내에 DynamicParam, Begin, Process 및 End 문 목록을 포함할 수 있습니다.

구문:

          function [<scope:>]<name> { 
              param ([type]<$pname1> [, [type]<$pname2>])
              DynamicParam {<statement list>}
              begin {<statement list>}
              process {<statement list>}
              end {<statement list>}
          }

문 목록 외부에서 함수 이름 뒤에 하나 이상의 매개 변수를 정의할 수도 있습니다.

구문:

          function [<scope:>]<name> [([type]<$pname1>, [[type]<$pname2>])] { 
              DynamicParam {<statement list>}
              begin {<statement list>}
              process {<statement list>}
              end {<statement list>}
          }
      If
      --

조건문을 정의합니다.

구문:

          if (<condition>) {<statement list>}
      In
      --

ForEach 문에서 컬렉션의 각 멤버를 사용하는 루프를 만드는 데 사용됩니다.

구문:

          ForEach (<item> in <collection>){<statement list>}
      InlineScript
      ------------

공유 Windows PowerShell 세션에서 워크플로 명령을 실행합니다. 이 키워드는 Windows PowerShell 워크플로에서만 유효합니다.

구문:

          workflow <verb>-<noun>
          { 
              InlineScript
              {
                  <Command/Expression>
                  ...
              }
          }

InlineScript 키워드는 공유 표준(비워크플로) 세션에서 명령을 실행하는 InlineScript 활동을 나타냅니다. InlineScript 키워드를 사용하여 워크플로에서 유효하지 않은 명령을 실행하고 데이터를 공유하는 명령을 실행할 수 있습니다. 기본적으로 InlineScript 스크립트 블록의 명령은 별도의 프로세스로 실행됩니다.

자세한 내용은 about_InlineScript 및 워크플로에서 Windows PowerShell 명령 실행(https://technet.microsoft.com/library/jj574197.aspx)(영문)을 참조하세요.

      Param
      -----

함수에서 매개 변수를 정의합니다.

구문:

          function [<scope:>]<name> {
              param ([type]<$pname1>[, [[type]<$pname2>]])
              <statement list>
          }
      Parallel
      --------

워크플로 명령을 동시에 정의되지 않은 순서로 실행합니다. 이 키워드는 Windows PowerShell 워크플로에서만 유효합니다.

Parallel 키워드는 Parallel 스크립트 블록을 나타냅니다. Parallel 스크립트 블록의 명령은 동시에 임의 순서로 실행될 수 있습니다. 이 기능은 워크플로 성능을 크게 향상합니다.

구문:

          workflow <verb>-<noun>
          { 
              Parallel
              {
                  <Activity>
                  <Activity>
                  …            
              }
          }

ForEach 키워드의 Parallel 매개 변수는 컬렉션의 항목을 병렬로 처리합니다. 스크립트 블록의 활동은 각 항목에서 순차적으로 실행되지만 스크립트 블록은 여러 항목에서 동시에 실행될 수 있고 항목은 정의되지 않은 순서로 처리됩니다.

구문:

          workflow <verb>-<noun>
          { 
              ForEach -Parallel (<item> in <collection>)
              {
                  <Activity>
                  <Activity>
                  ...
              }
          }

자세한 내용은 about_Parallel, about_ForEach-Parallel을 참조하세요.

      Process
      -------

함수 본문의 한 부분을 DynamicParam, Begin 및 End 키워드와 함께 지정합니다. Process 문 목록이 파이프라인에서 입력을 받으면 Process 문 목록은 파이프라인의 각 요소에 대해 한 번 실행됩니다. 파이프라인이 개체를 제공하지 않으면 Process 문 목록이 실행되지 않습니다. 명령이 파이프라인의 첫 번째 명령이면 Process 문 목록이 한 번 실행됩니다.

구문:

          function <name> { 
              DynamicParam {<statement list>}
              begin {<statement list>}
              process {<statement list>}
              end {<statement list>}
          }
      Return 
      ------

Windows PowerShell이 스크립트나 함수 등의 현재 범위를 벗어나게 하고 선택적 식을 출력에 씁니다.

구문:

          return [<expression>]
      Sequence
      --------

Parallel 스크립트 블록에서 워크플로 명령을 순차적으로 실행합니다. 이 키워드는 Windows PowerShell 워크플로에서만 유효합니다.

구문:

          workflow <verb>-<noun>
          { 
              Parallel
              {
                  Sequence
                  {
                      <Activity>
                  }
              }
          }

Sequence 키워드는 Parallel 스크립트 블록 내에서 Sequence 블록을 만듭니다. Sequence 스크립트 블록의 명령은 순차적으로, 정의된 순서로 실행됩니다.

자세한 내용은 about_Sequence를 참조하세요.

      Switch
      ------

파이프라인 또는 파일에서 받은 항목에서 수행할 다양한 작업을 지정합니다. 다음 구문 모델의 하나를 사용할 수 있습니다.

구문 1:

          switch [-regex|-wildcard|-exact][-casesensitive] ( pipeline )
    
          { 
              <string>|<number>|<variable>|{ <expression> } {<statement list>}
              <string>|<number>|<variable>|{ <expression> } {<statement list>}
                    ...
              default {<statement list>}
          }

구문 2:

          switch [-regex|-wildcard|-exact][-casesensitive] -file filename
          { 
              <string>|<number>|<variable>|{ <expression> } {<statement list>}
              <string>|<number>|<variable>|{ <expression> } {<statement list>}
                    ...
              default {<statement list>}
          }
      Throw
      -----

개체를 오류로 throw합니다.

구문:

          throw [<object>]
      Trap 
      ----

오류가 발생하면 실행할 문을 정의합니다. 오류 형식에는 대괄호가 필요합니다. 두 번째 대괄호 쌍은 오류 형식이 선택 사항임을 나타냅니다.

구문:

          trap [[<error type>]] {<statement list>}
      Try
      ---

문이 실행되는 동안 오류가 있는지 확인할 문 목록을 정의합니다. 오류가 발생하면 Windows PowerShell은 Catch 또는 Finally 문에서 계속 실행됩니다. 오류 형식에는 대괄호가 필요합니다. 두 번째 대괄호 쌍은 오류 형식이 선택 사항임을 나타냅니다.

구문:

          try {<statement list>}
          catch [[<error type]] {<statement list>}
          finally {<statement list>}
      Until
      -----

Do 문에서 문 목록이 한 번 이상 실행되는 루핑 구문으로 사용됩니다.

구문:

          do {<statement list>} until (<condition>)
      While
      -----

Do 문에서 문 목록이 한 번 이상 실행되는 루핑 구문으로 사용됩니다.

구문:

          do {<statement list>} while (<condition>)
      Workflow
      --------

Windows PowerShell 언어로 작성된 스크립트 기반 Windows PowerShell 워크플로를 만듭니다.

Windows PowerShell 워크플로는 Windows PowerShell 및 Windows Workflow Foundation에서 지원되는 Windows PowerShell 명령 형식입니다. 워크플로는 여러 컴퓨터에 영향을 주는 복잡한 장기 실행 작업용으로 디자인되었습니다. 네트워크 중단 등에 의해 중단된 경우 워크플로를 검색할 수 있고 상태나 데이터 손실 없이 워크플로를 일시 중단하고 다시 시작할 수 있습니다.

워크플로는 Windows Workflow Foundation의 기본 언어인 XAML 또는 Windows PowerShell 언어로 작성할 수 있습니다.

스크립트 기반 워크플로의 구문은 함수 구문과 비슷합니다. 그러나 워크플로의 실행 단위는 명령이 아닌 활동입니다. 스크립트 기반 워크플로에서 사용되는 Cmdlet 및 기타 명령은 암시적으로 활동으로 변환됩니다.

스크립트와 함수에서 허용되는 일부 언어 요소는 워크플로에서 허용되지 않습니다. 마찬가지로 워크플로에는 "지속성 포인트"(검사점), 자체 일시 중단 및 병렬 처리와 같이 스크립트 및 함수에 없는 요소가 포함될 수 있습니다. 또한 모든 워크플로에는 Workflow 키워드를 사용할 때 Windows PowerShell에서 추가되는 일반 매개 변수 집합이 있습니다.

구문:

          workflow <Verb-Noun> { 
              param ([type]<$pname1> [, [type]<$pname2>])
              <statement list>
          }

          workflow <verb-noun> 
          {
              [CmdletBinding(<Attributes>)]
               Param
               (
                   [Parameter(<Arguments>)]                   
                   $Param1
               )
              <statement list>
          }

워크플로에 대한 자세한 내용은 TechNet Library에서 about_Workflows 및 "Windows PowerShell 워크플로 시작"(https://go.microsoft.com/fwlink/?LinkID=252592)을 참조하세요.

참고 항목

about_Escape_Characters

about_Special_Characters

about_Wildcards