항목
about_Data_Sections
간단한 설명
텍스트 문자열 및 기타 읽기 전용 데이터를 스크립트 논리와 분리하는 Data 섹션에 대해 설명합니다.
자세한 설명
Windows PowerShell용으로 설계된 스크립트에는 데이터만 포함된 Data 섹션이 하나 이상 있을 수 있습니다.
스크립트, 함수 또는 고급 함수에는 Data 섹션을 하나 이상 포함할 수 있습니다. Data 섹션의 내용은
Windows PowerShell 스크립트 언어의 지정된 하위 집합으로 제한됩니다.
데이터를 코드 논리와 분리하면 논리와 데이터를 모두 쉽게 식별하고 관리할 수 있습니다. 그러면 오류
메시지 및 도움말 문자열과 같은 별도의 텍스트용 문자열 리소스 파일을 사용할 수 있습니다. 보안 및
유효성 검사 테스트를 쉽게 수행할 수 있도록 코드 논리도 분리됩니다.
Windows PowerShell에서는 Data 섹션을 사용하여 스크립트 국제화를 지원합니다. Data 섹션을 사용하여
여러 UI(사용자 인터페이스) 언어로 변환될 문자열을 보다 쉽게 격리하거나 찾거나 처리할 수 있습니다.
Data 섹션은 Windows PowerShell 2.0 기능입니다. Data 섹션이 있는 스크립트를 Windows
PowerShell 1.0에서 실행하려면 스크립트를 수정해야 합니다.
구문
Data 섹션에 대한 구문은 다음과 같습니다.
DATA [-supportedCommand <cmdlet-name>] {
<Permitted content>
}
Data 키워드가 필요합니다. 이 키워드는 대/소문자를 구분하지 않습니다.
허용된 내용은 다음 요소로 제한됩니다.
- -match를 제외한 모든 Windows PowerShell 연산자
- If, Else, ElseIf 문
- $PsCulture, $PsUICulture, $True, $False, $Null 등의 자동 변수
- 주석
- 파이프라인
- 세미콜론(;)으로 구분된 문
- 다음과 같은 리터럴
a
1
1,2,3
"Windows PowerShell 2.0"
@( "red", "green", "blue" )
@{ a = 0x1; b = "great"; c ="script" }
[XML] @'
<p> Hello, World </p>
'@
- Data 섹션에 허용된 Cmdlet입니다. 기본적으로 ConvertFrom-StringData
cmdlet만 허용됩니다.
- SupportedCommand 매개 변수를 사용하여 Data 섹션에 허용하는 Cmdlet입니다.
Data 섹션에서 ConvertFrom-StringData cmdlet을 사용하면 키/값 쌍을 작은따옴표 또는 큰따옴표
문자열이나 작은따옴표 또는 큰따옴표 here-string으로 묶을 수 있습니다. 그러나 변수와 하위 식이 포함된
문자열은 변수가 확장되지 않고 하위 식이 실행 가능하지 않도록 작은따옴표 문자열 또는 작은따옴표
here-string으로 묶어야 합니다.
SupportedCommand
SupportedCommand 매개 변수를 사용하면cmdlet 또는 함수에서 데이터만 생성됨을 나타낼 수 있습니다.
이 변수는 사용자가 작성하거나 테스트한 데이터 섹션에 cmdlet과 함수를 포함할 수 있도록
설계되었습니다.
SupportedCommand의 값은 cmdlet 또는 함수 이름 하나 이상을 쉼표로 구분하여 나열한 목록입니다.
예를 들어 다음 데이터 섹션에는 XML 파일의 데이터 서식을 지정하는 사용자 작성 cmdlet인 Format-
XML이 포함됩니다.
DATA -supportedCommand Format-XML
{
Format-XML -strings string1, string2, string3
}
데이터 섹션 사용
Data 섹션의 내용을 사용하려면 이 섹션을 변수에 할당하고 변수 표기법을 사용하여 내용에
액세스합니다.
예를 들어 다음 데이터 섹션에는 here-string을 해시 테이블로 변환하는 ConvertFrom-StringData
명령이 있습니다. 해시 테이블은 $TextMsgs 변수에 할당됩니다.
$TextMsgs 변수는 데이터 섹션의 일부가 아닙니다.
$TextMsgs = DATA {
ConvertFrom-StringData -stringdata @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
$TextMsgs에서 해시 테이블의 키와 값에 액세스하려면 다음 명령을 사용합니다.
$TextMsgs.Text001
$TextMsgs.Text002
예제
단순 데이터 문자열입니다.
DATA {
"Thank you for using my Windows PowerShell Organize.pst script."
"It is provided free of charge to the community."
"I appreciate your comments and feedback."
}
허용되는 변수가 포함된 문자열입니다.
DATA {
if ($null) {
"To get help for this cmdlet, type get-help new-dictionary."
}
}
ConvertFrom-StringData cmdlet을 사용하는 작은따옴표로 묶인 here-string입니다.
DATA {
ConvertFrom-StringData -stringdata @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
ConvertFrom-StringData cmdlet을 사용하는 큰따옴표로 묶인 here-string입니다.
DATA {
ConvertFrom-StringData -stringdata @"
Msg1 = To start, press any key.
Msg2 = To exit, type "quit".
"@
}
다음 데이터를 생성하는 사용자 작성 cmdlet이 포함된 데이터 섹션입니다.
DATA -supportedCommand Format-XML {
Format-XML -strings string1, string2, string3
}
참고 항목
about_Automatic_Variables
about_Comparison_Operators
about_Hash_Tables
about_If
about_Operators
about_Quoting_Rules
about_Script_Internationalization
ConvertFrom-StringData
Import-LocalizedData