ConvertFrom-StringData
Converte uma string que contém um ou mais pares de chave/valor para uma tabela de hash.
Sintaxe
ConvertFrom-StringData [-StringData] <string> [<CommonParameters>]
Descrição
O cmdlet ConvertFrom-StringData converte uma string que contém um ou mais pares de chave/valor em uma tabela de hash. Como cada par de chave/valor deve estar em uma linha separada, strings here normalmente são usadas como o formato de entrada.
O cmdlet ConvertFrom-StringData é considerado como um cmdlet seguro que pode ser usado na seção DATA de um script ou função. Quando usado em uma seção DATA, o conteúdo da string deve estar em conformidade com as regras de uma seção DATA. Para obter mais informações, consulte about_Data_Sections.
Parâmetros
-StringData <string>
Especifica a string a ser convertida. É possível usar esse parâmetro ou canalizar uma string para ConvertFrom-StringData. O nome do parâmetro é opcional.
O valor desse parâmetro deve ser uma string incluída entre aspas simples (uma string entre aspas simples) ou uma string incluída entre aspas duplas (uma string entre aspas duplas) ou uma string here que contém um ou mais pares de chave/valor. Cada par de chave/valor deve estar em uma linha separada ou deve ser separado pelos caracteres de nova linha ('n).
É possível incluir comentários na string, mas os comentários não podem estar na mesma linha que um par de chave/valor. Os comentários não são incluídos na tabela de hash.
Uma string here é uma string que consiste em uma ou mais linhas dentro das quais aspas são interpretadas literalmente. Para obter mais informações, consulte about_Quoting_Rules.
Necessário? | true |
Posição? | 1 |
Valor padrão | |
Aceitar entrada do pipeline? | true (ByValue) |
Aceitar caracteres curinga? | false |
<CommonParameters>
Esse cmdlet oferece suporte aos parâmetros comuns: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Para obter mais informações, consulte about_Commonparameters.
Entradas e saídas
O tipo de entrada é o tipo dos objetos que você pode canalizar para o cmdlet. O tipo de retorno é o tipo dos objetos que o cmdlet retorna.
Entradas | System.String
Você pode enviar uma string que contém um par de chave/valor para ConvertFrom-StringData. |
Saídas | System.Collections.Hashtable
ConvertFrom-StringData retorna uma tabela de hash criada a partir dos pares de chave/valor. |
Observações
Uma string here é uma string que consiste em uma ou mais linhas dentro das quais aspas são interpretadas literalmente. Para obter mais informações, consulte about_Quoting_Rules.
ConvertFrom-StringData pode ser útil em scripts que exibem mensagens de usuário em vários idiomas. É possível usar tabelas de hash em estilo de dicionário para isolar strings de texto do código, como em arquivos de recursos, e formar strings de texto para uso em ferramentas de tradução.
Exemplo 1
C:\PS>$here = @' Msg1 = The string parameter is required. Msg2 = Credentials are required for this command. Msg3 = The specified variable does not exist. '@ C:\PS> convertfrom-stringdata -stringdata $here Name Value ---- ----- Msg3 The specified variable does not exist. Msg2 Credentials are required for this command. Msg1 The string parameter is required. Descrição ----------- Esses comandos convertem uma string here entre aspas simples de mensagens de usuário em uma tabela de hash. Em uma string entre aspas simples, os valores não são substituídos para variáveis e as expressões não são avaliadas. O primeiro comando cria uma string here e salva-a na variável $here. O segundo comando usa o cmdlet ConvertFrom-StringData para converter a string here na variável $here em uma tabela de hash.
Exemplo 2
C:\PS>$p = @" ISE = Windows PowerShell Integrated Scripting Environment "@ C:\PS> $p | get-member TypeName: System.String Name MemberType Definition ---- ---------- ---------- Clone Method System.Object Clone() ... C:\PS> $hash = convertfrom-stringdata -stringdata $p C:\PS> $hash | get-member TypeName: System.Collections.Hashtable Name MemberType Definition ---- ---------- ---------- Add Method System.Void Add(Object key, Object ... Descrição ----------- Esses comandos demonstram que ConvertFrom-StringData realmente converte um string here em uma tabela de hash. O primeiro comando cria uma string here entre aspas duplas que inclui um par de chave/valor e salva-a na variável $p. O segundo comando usa um operador de pipeline (|) para enviar a variável $p ao cmdlet Get-Member. O resultado mostra que $p é uma string (System.String). O terceiro comando usa o cmdlet ConvertFrom-StringData para converter a string here em $p em uma tabela de hash. O comando armazena o resultado na variável $hash. O comando final usa um operador de pipeline (|) para enviar a variável $hash ao cmdlet Get-Member. O resultado mostra que o conteúdo da variável $hash é uma tabela de hash (System.Collections.Hashtable).
Exemplo 3
C:\PS>convertfrom-stringdata -stringdata @' Name = Disks.ps1 # Category is optional. Category = Storage Cost = Free '@ Name Value ---- ----- Cost Free Category Storage Name Disks.ps1 Descrição ----------- Esse comando converte uma string here entre aspas simples que contém vários pares de chave/valor em uma tabela de hash. Nesse comando, o valor do parâmetro StringData é uma string here, em vez de uma variável que contém uma string here. Qualquer formato é válido. A string here inclui um comentário sobre uma das strings. Os comentários são válidos em strings, desde que o comentário esteja em uma linha diferente de um par de chave/valor.
Exemplo 4
C:\PS>$a = convertfrom-stringdata -stringdata "Top = Red `n Bottom = Blue" C:\PS> "Top = " + $a.Top Top = Red C:\PS> "Bottom = " + $a.Bottom Bottom = Blue Descrição ----------- Esse exemplo converte uma string entre aspas duplas (não uma string here) em uma tabela de hash e salva-a na variável $a. Para satisfazer a condição de que cada par de chave/valor deve estar em uma linha separada, ele usa o caractere de nova linha do Windows PowerShell ('n) para separar os pares. O resultado é uma tabela de hash da entrada. Os comandos restantes exibem a saída.
Exemplo 5
C:\PS>$TextMsgs = DATA { ConvertFrom-StringData @' Text001 = The $Notebook variable contains the name of the user's system notebook. Text002 = The $MyNotebook variable contains the name of the user's private notebook. '@ } C:\PS> $TextMsgs.Text001 The $Notebook variable contains the name of the user's system notebook. C:\PS> $TextMsgs.Text002 The $MyNotebook variable contains the name of the user's private notebook. Descrição ----------- Esse exemplo mostra um comando ConvertFrom-StringData usado na seção DATA de um script. As instruções abaixo da seção DATA exibem o texto para o usuário. Como o texto inclui nomes de variável, ele deve ser incluído em uma string entre aspas simples para que as variáveis sejam interpretadas literalmente e não expandidas. Variáveis não são permitidas na seção DATA.
Exemplo 6
C:\PS>$here = @' Msg1 = The string parameter is required. Msg2 = Credentials are required for this command. Msg3 = The specified variable does not exist. '@ C:\PS> $hash = $here | convertfrom-stringdata C:\PS> $hash Name Value ---- ----- Msg3 The specified variable does not exist. Msg2 Credentials are required for this command. Msg1 The string parameter is required. Descrição ----------- Esse exemplo mostra que é possível usar um operador de pipeline (|) para enviar uma string a ConvertFrom-StringData. O primeiro comando salva uma string here na variável $here. O segundo comando usa um operador de pipeline (|) para enviar a variável $here ao cmdlet ConvertFrom-StringData. O comando salva o resultado na variável $hash. O comando final exibe o conteúdo da variável $hash.