Header Ads

Propriedades calculadas em funções do PowerShell

Muitas vezes, uma propriedade retornada de um objeto no PowerShell pode não ter um nome ideal ou o valor não está exatamente no formato necessário. Para essas instâncias, o PowerShell tem a construção de propriedades calculadas. Este recurso útil permite modificar o valor retornado facilmente durante as operações de seleção e retornar rápida e facilmente o que é necessário na saída do pipeline. Na prática, como isso se parece? Que tal pegar um formato de data e mudar para um formato diferente?

 $ Object | Select-Object "Name", "Date", @ {Name = 'NewDate' Expression = {Get-Date $ _. Date -Format "MM / dd / aaaa"}} 

Se você não viu isso antes, pode ser um formato de aparência bem estranho para ser inserido em um comando Selecionar Objeto. Continue lendo para aprender o que cada parte significa e como ela pode ser aproveitada para manipular facilmente os dados conforme necessário!

Anatomia de uma propriedade calculada

Uma propriedade calculada é, em seu núcleo, uma tabela de hash que define como a saída deve parecer uma propriedade. Existem várias chaves que podemos definir para manipular a saída.

  • Nome / rótulo – Especifica o nome da propriedade retornada, com rótulo usado como um alias.
  • Expressão – O bloco de script usado para calcular o novo valor da propriedade.
  • Alinhamento – Quando um cmdlet de saída tabular é usado, isso definirá como os valores são exibidos em uma coluna usando esquerda, centro ou direita como os valores permitidos.
  • Formatstring – Especifica uma string de formato, que é uma string de formatação . NET.
  • Largura – Para saída tabular, define a largura máxima da coluna, que deve ser maior que 0.
  • Profundidade – Usado apenas com o cmdlet Format-Custom, especifica a profundidade máxima de expansão por propriedade.
  • Crescente / Decrescente – Especifique a ordem de classificação de uma ou mais propriedades, esses são valores booleanos definidos como $ True ou $ False.

Como é isso na prática? Para Select-Object, você normalmente usará apenas Nome e Expressão. Para controlar a saída tabular específica, você pode usar as várias opções de alinhamento, formato e largura.

Selecionar objeto e propriedades calculadas

Na maioria das vezes, Select-Object é usado com propriedades calculadas, pois isso permite que você manipule a saída de forma rápida e fácil sem ter que modificar os dados de origem e passar os dados convenientemente pelo pipeline no formato necessário. Abaixo está um exemplo de como isso se parece na prática! Primeiro, começaremos com o mesmo objeto que usaremos para demonstrar todos os exemplos abaixo.

 $ Object = [PSCustomObject] @ {'Nome' = 'Objeto de teste' 'Data' = Get-Date 'Número' = 100 'Ativado' = $ True 'Extra' = @ ('Um', 'Dois', 'Três')} $ Object 

Olhando para a data, não corresponde exatamente ao esperado. Vamos mudar isso para um formato diferente. Você pode modificar o comando Get-Date no próprio objeto, mas às vezes você não tem a capacidade de fazer isso. Portanto, podemos alterar o formato da data usando uma propriedade calculada como abaixo. Com o código a seguir, estamos alterando o formato da data para MM / dd / aaaa usando o parâmetro Format de Get-Date.

 $ Object | Select-Object Name, @ {Name = 'NewDate' Expression = {Get-Date $ _. Date -Format "MM / dd / aaaa"}} 

Como você pode ver, uma nova propriedade chamada NewDate foi criada e o formato da data mudou! Como se trata de um bloco de script, você pode conter muita lógica, como instruções de controle como switch ou pesquisas adicionais, se necessário. Continue lendo para aprender como produzir dados formatados de maneira melhor.

Tabela de formato e propriedades calculadas

A visualização padrão de Format-Table pode deixar algo a desejar. Portanto, vamos ver o que podemos fazer para torná-lo um pouco melhor para trabalhar. Usando o mesmo objeto definido originalmente, como fica a saída?

Podemos deixar isso melhor, com certeza! Em primeiro lugar, o alinhamento não é ideal para Número ou Ativado. Em segundo lugar, devemos produzir Number com duas casas decimais. Por fim, vamos deixar o Nome mais amplo, alterar a Data para o nosso novo formato e juntar o Extra por vírgulas. Veja abaixo, como podemos usar propriedades calculadas para mudar a visão!

 $ Object | Format-Table @ {Name = 'Name' Expression = {$ _. Name} Width = 20}, @ {Name = 'Date' Expression = {Get-Date $ _. Date -Format "MM / dd / aaaa"} Width = 10}, @ {Name = 'Number' Expression = {$ _. Number} Formatstring = 'N2' Alignment = 'Center' Width = 10}, @ {Name = 'Enabled' Expression = {$ _. Enabled} Alinhamento = 'Center' Width = 10}, @ {Name = 'Extra' Expression = {$ _. Extra -Join ","} Width = 30} 

Muito melhor! É mais fácil entender os dados e você pode ver como todas as diferentes possibilidades com propriedades calculadas se unem para ajudar a tornar esse trabalho melhor.

Conclusão

As propriedades calculadas são uma construção de linguagem exclusiva que é usada quando é necessária uma maneira rápida e flexível de modificar a saída do pipeline sem modificar o código upstream. Com os recursos disponíveis para exibição do console e manipulação de dados ao transmitir dados mais adiante em um pipeline, as propriedades calculadas podem ser integradas rapidamente a qualquer script.

Nenhum comentário