O comando Format-Table
no PowerShell exibe objetos de maneira fundamentalmente semelhante às planilhas do Microsoft Excel. O Microsoft Excel fornece um recurso de formatação condicional que permite aos criadores de planilhas alterar o formato de exibição de uma célula, com base no valor do conteúdo da célula.
Seria muito bom se um usuário do PowerShell pudesse adicionar regras de formatação condicional às propriedades do objeto, usando o comando Format-Table
. Dessa forma, digamos que você tenha um objeto com uma propriedade Status
. Essa propriedade pode ser emitida como Green
se seu valor for Success
ou Red
se o valor da propriedade for Failed
.
Name Status
---- ------
Step 1 Failed (Red)
Step 2 Success (Green)
Por exemplo, você pode adicionar um especificador de propriedade personalizada no comando Format-Table
seguinte maneira:
Get-SomeObjects | Format-Table -Property Name, @{ Name = 'Status'; Color = 'Green'; Value = '^Success$' }
No PowerShell hoje, já temos uma sintaxe semelhante para construir "propriedades calculadas". Poderíamos aproveitar uma sintaxe semelhante para construir expressões coloridas em tabelas de dados. Esse recurso seria útil para construir painéis baseados em PowerShell e apresentar dados de uma maneira mais útil no console.
Saúde,
Trevor Sullivan
Definitivamente, um aprimoramento futuro, mas concordo que seria incrível.
Idem para Format-Custom
, Format-List
e Format-Wide
Para quem deseja isso hoje, Ahmad Adel Gad ofereceu uma solução, Write-PSObject
, no Centro de Script do TechNet. https://gallery.technet.microsoft.com/scriptcenter/Format-Table-Colors-in-e0a4beac
Para formatação condicional, consulte o exemplo 16B.01: Write-PSObject $servers -MatchMethod Exact -Column * -Value $false -ValueForeColor Red;
Há uma boa reflexão sobre as opções disponíveis neste CmdLet, então pode ser uma boa fonte de inspiração para este pedido de aprimoramento também.
Comentários muito úteis
Idem para
Format-Custom
,Format-List
eFormat-Wide