TÓPICO
about_Data_Sections
DESCRIÇÃO RESUMIDA
Explica seções Data, o que isola cadeias de texto e outros dados
somente leitura da lógica de script.
DESCRIÇÃO LONGA
Scripts que são criados para o Windows PowerShell podem ter uma
ou mais seções Data que contêm apenas dados. Você pode incluir
uma ou mais seções Data em qualquer script, função ou função
avançada. O conteúdo da seção Data é restrito a um subconjunto
especificado da linguagem de scripts do Windows PowerShell.
Separar dados da lógica de código facilita a identificação e o
gerenciamento da lógica e dos dados. Permite ter arquivos de
recurso de cadeia de caracteres separados para texto, como
mensagens de erro e cadeias de caracteres de Ajuda. Também isola
a lógica de código, o que facilita os testes de segurança e
validação.
No Windows PowerShell, a seção Data é usada para dar suporte à
internacionalização de scripts. Você pode usar seções Data para
facilitar o isolamento, a localização e o processamento de cadeias de
caracteres que serão traduzidas para muitos idiomas de interface do
usuário.
A seção Data é um recurso do Windows PowerShell 2.0. Scripts com
seções Data não serão executados no Windows PowerShell 1.0 sem
revisão.
Sintaxe
A sintaxe de uma seção Data é a seguinte:
DATA [-supportedCommand <nome-cmdlet>] {
<Conteúdo permitido>
}
A palavra-chave Data é necessária. Não diferencia maiúsculas de
minúsculas.
O conteúdo permitido é limitado aos seguintes elementos:
- Todos os operadores do Windows PowerShell, exceto -match
- Instruções If, Else e ElseIf
- As seguintes variáveis automáticas: $PsCulture, $PsUICulture, $True,
$False e $Null
- Comentários
- Pipelines
- Instruções separadas por ponto-e-vírgulas (;)
- Literais, como:
a
1
1,2,3
"Windows PowerShell 2.0"
@ ( "vermelho", "verde", "azul" )
@{ a = 0x1; b = "grande"; c ="script" }
[XML] @'
<p> Olá, mundo </p>
'@
- Cmdlets que são permitidos em uma seção Data. Por padrão,
somente o cmdlet ConvertFrom-StringData é permitido.
- Os cmdlets que você permite em uma seção Data usando o parâmetro
SupportedCommand.
Ao usar o cmdlet ConvertFrom-StringData em uma seção Data, você
pode incluir os pares chave/valor em cadeias de caracteres entre aspas
simples ou duplas ou em cadeias de caracteres here entre aspas
simples ou duplas. No entanto, cadeias de caracteres que contêm
variáveis e subexpressões precisam estar incluídas em cadeias de
caracteres entre aspas simples ou em cadeias de caracteres here entre
aspas simples, de modo que as variáveis não sejam expandidas e as
subexpressões não sejam executáveis.
SupportedCommand
O parâmetro SupportedCommand permite que você indique que um
cmdlet ou função gere somente dados. Ele foi projetado para
permitir que os usuários incluam cmdlets e funções em uma seção
data que eles gravaram ou testaram.
O valor de SupportedCommand é uma lista separada por vírgula de
um ou mais nomes de cmdlet ou função.
Por exemplo, a seção data a seguir inclui um cmdlet escrito
pelo usuário, Format-XML, que formata dados em um arquivo XML:
DATA -supportedCommand Format-XML
{
Format-XML -strings string1, string2, string3
}
Usando uma seção Data
Para usar o conteúdo de uma seção Data, atribua-o a uma
variável e use a notação de variável para acessar o conteúdo.
Por exemplo, a seção data a seguir contém um comando ConvertFrom-
StringData que converte a cadeia de caracteres here em uma tabela de
hash. A tabela de hash é atribuída à variável $TextMsgs.
A variável $TextMsgs não faz parte da seção data.
$TextMsgs = DATA {
ConvertFrom-StringData -stringdata @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
Para acessar as chaves e os valores na tabela de hash em
$TextMsgs, use os seguintes comandos.
$TextMsgs.Text001
$TextMsgs.Text002
EXEMPLOS
Cadeias de caracteres de dados simples.
DATA {
"Obrigado por usar meu script Organize.pst do Windows
PowerShell." "Ele é fornecido gratuitamente à
comunidade." "Seus comentários são bem-vindos."
}
Cadeias de caracteres que incluem variáveis permitidas.
DATA {
if ($null) {
"Para obter ajuda sobre esse cmdlet, digite get-help new-
dictionary."
}
}
Uma cadeia de caracteres here entre aspas simples que usa o cmdlet
ConvertFrom-StringData:
DATA {
ConvertFrom-StringData -stringdata @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
Uma cadeia de caracteres here entre aspas duplas que usa o cmdlet
ConvertFrom-StringData:
DATA {
ConvertFrom-StringData -stringdata @" Msg1 = Para iniciar,
pressione qualquer tecla.
Msg2 = Para fechar, digite "sair".
"@
}
Uma seção data que inclui um cmdlet escrito pelo usuário que gera
dados:
DATA -supportedCommand Format-XML {
Format-XML -strings string1, string2, string3
}
CONSULTE TAMBÉM
about_Automatic_Variables
about_Comparison_Operators
about_Hash_Tables
about_If
about_Operators
about_Quoting_Rules
about_Script_Internationalization
ConvertFrom-StringData
Import-LocalizedData