about_Data_Sections
간단한 설명
스크립트 논리에서 텍스트 문자열 및 기타 읽기 전용 데이터를 격리하는 DATA
섹션에 대해 설명합니다.
자세한 설명
PowerShell용으로 설계된 스크립트에는 데이터만 포함된 하나 이상의 DATA
섹션이 있을 수 있습니다. 스크립트, 함수 또는 고급 함수에 하나 이상의 DATA
섹션을 포함할 수 있습니다.
DATA
섹션의 내용은 PowerShell 스크립팅 언어의 지정된 하위 집합으로 제한됩니다.
코드 논리에서 데이터를 분리하면 논리와 데이터를 더 쉽게 식별하고 관리할 수 있습니다. 오류 메시지 및 도움말 문자열과 같은 텍스트에 대한 별도의 문자열 리소스 파일을 사용할 수 있습니다. 또한 보안 및 유효성 검사 테스트를 용이하게 하는 코드 논리를 격리합니다.
PowerShell에서 DATA
섹션을 사용하여 스크립트 국제화를 지원할 수 있습니다.
DATA
섹션을 사용하면 다른 언어로 번역할 수 있는 문자열을 더 쉽게 격리, 찾기 및 처리할 수 있습니다.
DATA
섹션이 PowerShell 2.0 기능에 추가되었습니다.
구문
DATA
섹션의 구문은 다음과 같습니다.
DATA [<variable-name>] [-supportedCommand <cmdlet-name>] {
<Permitted content>
}
DATA
키워드가 필요합니다. 대/소문자를 구분하지 않습니다. 허용되는 콘텐츠는 다음 요소로 제한됩니다.
모든 PowerShell 연산자(제외)
-match
If
,Else
,ElseIf
문자동 변수:
$PsCulture
,$PsUICulture
,$True
$False
및$Null
설명
파이프라인
세미콜론으로 구분된 문(
;
)다음과 같은 리터럴:
a 1 1,2,3 "PowerShell 2.0" @( "red", "green", "blue" ) @{ a = 0x1; b = "great"; c ="script" } [XML] @' <p> Hello, World </p> '@
DATA
섹션에서 사용할 수 있는 cmdlet입니다. 기본적으로 cmdlet만ConvertFrom-StringData
허용됩니다.-SupportedCommand
매개 변수를 사용하여DATA
섹션에서 허용하는 cmdlet은 귀하가 설정하는 것입니다.
DATA
섹션에서 ConvertFrom-StringData
cmdlet을 사용하는 경우 키-값 쌍을 작은따옴표나 큰따옴표로 묶은 문자열이나 작은따옴표나 큰따옴표로 묶은 here-string으로 감쌀 수 있습니다. 그러나 변수와 하위 표현식을 포함하는 문자열은 변수가 확장되지 않고 하위 표현식이 실행되지 않도록 작은따옴표로 묶인 문자열 또는 작은따옴표로 묶인 here-string으로 사용해야 합니다.
-SupportedCommand
SupportedCommand 매개 변수를 사용하면 cmdlet 또는 함수가 데이터만 생성함을 나타낼 수 있습니다. 사용자가 작성하거나 테스트한 DATA
섹션에 cmdlet 및 함수를 포함할 수 있도록 설계되었습니다.
SupportedCommand 값은 하나 이상의 cmdlet 또는 함수 이름의 쉼표로 구분된 목록입니다.
예를 들어 다음 DATA
섹션에는 XML 파일의 데이터 형식을 지정하는 Format-Xml
사용자가 작성한 cmdlet이 포함되어 있습니다.
DATA -supportedCommand Format-Xml
{
Format-Xml -Strings string1, string2, string3
}
DATA
섹션 사용
DATA
섹션의 콘텐츠를 사용하려면 변수에 할당하고 변수 표기법을 사용하여 콘텐츠에 액세스합니다.
예를 들어 다음 DATA
섹션에는 여기 문자열을 해시 테이블로 변환하는 ConvertFrom-StringData
명령이 포함되어 있습니다. 해시 테이블이 변수에 $TextMsgs
할당됩니다.
$TextMsgs
변수는 DATA
섹션에 포함되지 않습니다.
$TextMsgs = DATA {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
해시 테이블의 키와 값에 $TextMsgs
액세스하려면 다음 명령을 사용합니다.
$TextMsgs.Text001
$TextMsgs.Text002
대안으로, 변수 이름을 DATA
섹션 정의에 포함시킬 수 있습니다. 예시:
DATA TextMsgs {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
$TextMsgs
결과는 이전 예제와 동일합니다.
Name Value
---- -----
Text001 Windows 7
Text002 Windows Server 2008 R2
예제
단순 데이터 문자열입니다.
DATA {
"Thank you for using my 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."
}
}
cmdlet을 사용하는 ConvertFrom-StringData
작은따옴표로 묶은 여기 문자열입니다.
DATA {
ConvertFrom-StringData -stringdata @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
cmdlet을 사용하는 ConvertFrom-StringData
큰따옴표가 붙은 여기 문자열입니다.
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
}
참고 항목
PowerShell