Команда Format-Table
в PowerShell отображает объекты принципиально аналогично таблицам Microsoft Excel. Microsoft Excel предоставляет функцию условного форматирования, которая позволяет разработчикам электронных таблиц изменять формат отображения ячейки в зависимости от значения содержимого ячейки.
Было бы здорово, если бы пользователь PowerShell мог добавлять правила условного форматирования к свойствам объекта, используя команду Format-Table
. Таким образом, допустим, у вас есть объект со свойством Status
. Это свойство может быть передано как Green
если его значение равно Success
или Red
если значение свойства равно Failed
.
Name Status
---- ------
Step 1 Failed (Red)
Step 2 Success (Green)
Например, вы можете добавить спецификатор настраиваемого свойства в команду Format-Table
следующим образом:
Get-SomeObjects | Format-Table -Property Name, @{ Name = 'Status'; Color = 'Green'; Value = '^Success$' }
Сегодня в PowerShell у нас уже есть аналогичный синтаксис для создания «вычисляемых свойств». Мы могли бы использовать аналогичный синтаксис для построения раскрашенных выражений в таблицах данных. Эта возможность была бы полезна для создания панелей мониторинга на основе PowerShell и более удобного представления данных в консоли.
Ваше здоровье,
Тревор Салливан
Определенно будущее улучшение, но я согласен, это было бы здорово.
То же самое для Format-Custom
, Format-List
и Format-Wide
Для всех, кто хочет этого сегодня, Ахмад Адель Гад предложил решение Write-PSObject
в Центре сценариев TechNet. https://gallery.technet.microsoft.com/scriptcenter/Format-Table-Colors-in-e0a4beac
Для условного форматирования см. Пример 16B.01: Write-PSObject $servers -MatchMethod Exact -Column * -Value $false -ValueForeColor Red;
Опции, доступные в этом CmdLet, действительно хорошо продуманы, так что это тоже может быть хорошим источником вдохновения для этого запроса на улучшение.
Самый полезный комментарий
То же самое для
Format-Custom
,Format-List
иFormat-Wide