PowerShell pipeline: обробка потоків даних і фільтрація

4 хв читання

Ефективна робота з pipeline в PowerShell: оператори Where-Object, Select-Object, ForEach-Object, Group-Object і Sort-Object для обробки великих обсягів даних.

Pipeline (|) — основна концепція PowerShell. Кожна команда передає об'єкти наступній.


Основні оператори

# Where-Object — фільтрація
Get-Process | Where-Object { $_.CPU -gt 10 }
Get-Service | Where-Object { $_.Status -eq "Stopped" }

# Select-Object — вибрати колонки
Get-Process | Select-Object Name, CPU, WorkingSet

# Sort-Object — сортування
Get-Process | Sort-Object CPU -Descending

# Group-Object — групування
Get-Service | Group-Object Status

# Measure-Object — підрахунок
Get-ChildItem C:\ | Measure-Object Length -Sum -Average

Скорочений синтаксис

# ? — скорочення для Where-Object
Get-Process | ? { $_.CPU -gt 5 }

# % — скорочення для ForEach-Object
Get-Process | % { Write-Output "$($_.Name): $([math]::Round($_.CPU))%" }

Обчислювані властивості

# Додати нову колонку з обчисленням
Get-Process | Select-Object Name,
  @{Name="RAM MB"; Expression={[math]::Round($_.WorkingSet/1MB)}} |
  Sort-Object "RAM MB" -Descending |
  Select-Object -First 10

Обробка файлів

# Знайти великі файли
Get-ChildItem C:\Users -Recurse -File |
  Where-Object { $_.Length -gt 100MB } |
  Select-Object FullName,
    @{N="Size MB";E={[math]::Round($_.Length/1MB,1)}} |
  Sort-Object "Size MB" -Descending

Підсумок

Where-ObjectSelect-ObjectSort-Object — базовий pipeline. @{N="..."; E={...}} — обчислювані колонки. Group-Object — агрегація. Measure-Object -Sum — підсумки.


⚡ Шукаєш потрібну команду?

→ PowerShell і CMD довідник — 40+ команд з пошуком за задачею. Введи "мережа", "диск" або "безпека" і одразу отримай готову команду.

Схожі статті

← Всі статті