다음을 통해 공유


about_Script_Blocks

항목
    about_Script_Blocks

간단한 설명
    스크립트 블록을 정의하고 Windows PowerShell 프로그래밍 언어에서 스크립트 블록을 사용하는 방법에 
    대해 설명합니다.


자세한 설명
    Windows PowerShell 프로그래밍 언어에서 스크립트 블록은 한 단위로 사용할 수 있는 문이나 식의 
    모음입니다. 스크립트 블록은 인수를 받아들이고 값을 반환할 수 있습니다.

    구문 측면에서 스크립트 블록은 다음 구문과 같이 중괄호로 묶인 문 목록입니다.


        {<statement list>}


    스크립트 블록은 스크립트 블록에 있는 모든 명령의 출력을 한 개체나 배열로 반환합니다.

    함수와 마찬가지로 스크립트 블록에는 매개 변수가 포함될 수 있습니다. 다음 구문에서와 같이 Param 
    키워드를 사용하여 명명된 매개 변수를 할당할 수 있습니다. 


        {
            param ([type]$parameter1 [,[type]$parameter2]) 
            <statement list>
        }


    스크립트 블록에서는 함수와 달리 중괄호 밖에 매개 변수를 지정할 수 없습니다.


    스크립트 블록은 함수와 마찬가지로 DynamicParam, Begin, Process 및 End 키워드를 포함할 수 있습니다. 
    자세한 내용은 about_Functions 및 about_Functions_Advanced를 참조하십시오.


  스크립트 블록 사용

      스크립트 블록은 Microsoft .NET Framework 형식(System.Management.Automation.ScriptBlock)의 
      인스턴스입니다. 명령에 스크립트 블록 매개 변수 값이 있을 수 있습니다. 예를 들면 
      Invoke-Command cmdlet에는 다음 예제와 같이 스크립트 블록 값을 사용하는 ScriptBlock 매개 변수가 
      있습니다.


          C:\PS> invoke-command -scriptblock  { get-process }
          Handles  NPM(K)    PM(K)     WS(K) VM(M)   CPU(s)     Id ProcessName
          -------  ------    -----     ----- -----   ------     -- -----------            
              999      28    39100     45020   262    15.88   1844 communicator
              721      28    32696     36536   222    20.84   4028 explorer   
          . . .           

      값으로 사용되는 스크립트 블록은 다음 예제와 같이 더 복잡할 수 있습니다.


          C:\PS> invoke-command -scriptblock { param ($uu = "Parameter"); 
              "$uu assigned." }  
          Parameter assigned.


      위의 예제에 있는 스크립트 블록에서는 Param 키워드를 사용하여 기본값이 있는 매개 변수를 만듭니다. 
      다음 예제에서는 Invoke-Command cmdlet의 Args 매개 변수를 사용하여 이 매개 변수에 다른 값을 
      할당합니다.


          C:\PS> invoke-command -scriptblock {param ($uu = "Parameter"); 
              "$uu assigned."} -args "Other value"
          Other value assigned.


      다음 예제와 같이 스크립트 블록을 변수에 할당할 수 있습니다.


          C:\PS> $a = {param ($uu = "Parameter"); "$uu assigned."}


      다음 예제와 같이 Invoke-Command와 같은 cmdlet과 함께 이 변수를 사용할 수 있습니다.


          C:\PS> invoke-command -scriptblock $a -args "Other value"
          Other value assigned.


      다음 예제와 같이 호출 연산자(&)를 사용하여 변수에 할당된 스크립트 블록을 실행할 수 있습니다.


          C:\PS> &$a 
          Parameter assigned.


      다음 예제와 같이 스크립트 블록에 매개 변수를 제공할 수도 있습니다.


          C:\PS> &$a "Other value"
          Other value assigned.


      스크립트 블록에서 만든 값을 변수에 할당하려면 다음 예제와 같이 호출 연산자를 사용하여 스크립트 
      블록을 직접 실행합니다.


          C:\PS> $a = &{param ($uu = "Parameter"); "$uu assigned."}
          C:\PS> $a
          Parameter assigned.


      호출 연산자에 대한 자세한 내용은 about_Operators를 참조하십시오.


참고 항목
    about_Functions
    about_Functions_Advanced
    about_Operators