Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Descrição curta
Explica data seções, que isolam cadeias de caracteres de texto e outros dados somente leitura da lógica de script.
Descrição longa
Os scripts projetados para o 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 script do PowerShell.
Separar dados da lógica do código facilita a identificação e o gerenciamento da lógica e dos dados. Ele permite que você tenha arquivos de recurso de cadeia de caracteres separados para texto, como mensagens de erro e cadeias de caracteres de Ajuda. Ele também isola a lógica do código, o que facilita os testes de segurança e validação.
No PowerShell, você pode usar a seção data para dar suporte à internacionalização de script. Você pode usar data seções para facilitar o isolamento, a localização e o processo de cadeias de caracteres que podem ser traduzidas para outros idiomas.
A seção data foi adicionada ao recurso do PowerShell 2.0.
Sintaxe
A sintaxe de uma seção data é a seguinte:
data [<variable-name>] [-SupportedCommand <cmdlet-name>] {
<Permitted content>
}
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 PowerShell, exceto
-matchInstruções
if,elseeelseifAs seguintes variáveis automáticas:
$PSCulture,$PSUICulture,$true$false, e$nullComentários
Pipelines
Instruções separadas por ponto e vírgula (
;)Literais, como os seguintes:
a 1 1,2,3 "PowerShell 2.0" @( "red", "green", "blue" ) @{ a = 0x1; b = "great"; c ="script" } @' <p> Hello, World </p> '@Cmdlets permitidos em uma
dataseção por padrão. Por padrão, somente oConvertFrom-StringDatacmdlet é permitido.Cmdlets que você permite em uma seção
datausando o parâmetro-SupportedCommand.
Ao usar o cmdlet ConvertFrom-StringData em uma seção data, você pode colocar os pares chave-valor em cadeias de caracteres entre aspas simples ou duplas ou em cadeias de caracteres aqui entre aspas simples ou duplas. No entanto, cadeias de caracteres que contêm variáveis e subexpressões devem ser colocadas entre cadeias de caracteres de aspas simples ou em cadeias de caracteres aqui entre aspas para que as variáveis não sejam expandidas e as subexpressões não sejam executáveis.
-Comando Suportado
O parâmetro SupportedCommand permite indicar que um cmdlet ou função gera apenas dados. Ele foi projetado para permitir que os usuários incluam cmdlets e funções em uma seção data que eles escreveram ou testaram.
O valor de SupportedCommand é uma lista separada por vírgulas 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 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 aqui em uma tabela de hash. A tabela de hash é atribuída à $TextMsgs variável.
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 no $TextMsgs, use os comandos a seguir.
$TextMsgs.Text001
$TextMsgs.Text002
Como alternativa, você pode colocar o nome da variável na definição da seção data. Por exemplo:
data TextMsgs {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
$TextMsgs
O resultado é o mesmo do exemplo anterior.
Name Value
---- -----
Text001 Windows 7
Text002 Windows Server 2008 R2
Exemplos
Cadeias de dados simples.
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."
}
Cadeias de caracteres que incluem variáveis permitidas.
data {
if ($null) {
"To get help for this cmdlet, type Get-Help New-Dictionary."
}
}
Uma cadeia de caracteres aqui entre aspas simples que usa o ConvertFrom-StringData cmdlet:
data {
ConvertFrom-StringData -StringData @'
Text001 = Windows 7
Text002 = Windows Server 2008 R2
'@
}
Uma cadeia de caracteres aqui entre aspas duplas que usa o ConvertFrom-StringData cmdlet:
data {
ConvertFrom-StringData -StringData @"
Msg1 = To start, press any key.
Msg2 = To exit, type "quit".
"@
}
Uma seção de dados que inclui um cmdlet escrito pelo usuário que gera dados:
data -SupportedCommand Format-Xml {
Format-Xml -Strings string1, string2, string3
}