Сервісний центр VPSGroup ремонт комп'ютерної техніки, заправка картриджів, ремонт оргтехніки, Київ, Виставковий центр, Васильківська, 55

Форматування виведення в PowerShell.

Досить часто потрібно запросити будь-які дані і вивести їх у вигляді таблиці. PowerShell надає для цього безліч способів, деякі з яких ми сьогодні розглянемо.

Для прикладу візьмемо командлет Get-Process, який, будучи запущеним без параметрів, повертає всі запущені в системі процеси в вигляді готової таблиці.Виведемо з його допомогою процеси, які споживають найбільшу кількість процесорного часу:

Get-Process | where {$ _. CPU -gt 10000}



Для більшої наочності відсортуємо отримані процеси по споживанню процесорного часу в порядку убування:

Get-Process | where {$ _. CPU -gt 10000} | sort CPU -Desc



За замовчуванням Get-Process виводить певний фіксований набір стовпців.Давайте перевизначити його і виведемо тільки потрібні нам стовпці, наприклад процесорний час (CPU), ідентифікатор (ID) і ім'я (ProcessName) процесу:

Get-Process | where {$ _. CPU -gt 10000} | sort CPU -Desc | ft CPU, ID, ProcessName -auto



Припустимо, що нам потрібно отримати якісь небудь особливі параметри , відсутні в стандартному виведення.Подивитися наявні параметри можна за допомогою порядкового виводу, наприклад так ми виведемо всі властивості процесу lsass:

Get-Process lsass | fl *



А тепер додамо в висновок опис процесу (Description):

Get-Process | where {$ _. CPU -gt 10000} | sort CPU -Desc | ft CPU, ProcessName, Description -auto



Ну і якщо вас не влаштовують стандартні параметри, можна створити свій власний стовпець.Для прикладу створимо стовпець з ім'ям «Process name» і помістимо його в змінну:

$ p = @ (Expression = {$ _. Name}; Label = "Process name"; width = 30}

Тут Expression - це вираз, який визначає значення параметра, Label - назва стовпчика, а width - його ширина.

Отриману змінну потім можна додати в висновок як звичайний параметр:

Get-Process | where {$ _.CPU -gt 10000} | sort CPU -Desc | ft CPU, $ P, Description -auto



За допомогою Expression можна виробляти практично будь-які перетворення. Наприклад, потрібно округлити процесорний час до цілого числа, для чого скористаємося статичним класом методом Round класу [math]:

$ c = @ (Expression = {[math] :: Round ($ _.CPU, 0)}; Label = "CPU time"}

І потім додамо отримане значення в таблицю:

Get-Process | where {$ _. CPU -gt 10000} | sort CPU -Desc | ft $ C, $ P, Description -auto



Таким чином можна організувати висновок потрібної інформації в зручному для себе вигляді.

.