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