about_Script_Blocks

업데이트 날짜: 2014년 5월

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

항목

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