항목
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