Ahoj všichni

Vítejte v CloudAffaire a tady Debjeet.

V minulém příspěvku jsme se zabývali rutinou Sort-Object v PowerShellu.

PowerShell Sort-Object Cmdlet

V tomto příspěvku se budeme zabývat rutinou Where-Object v PowerShellu. Pomocí rutiny Where-Object můžete v prostředí PowerShell filtrovat objekty na základě určitých kritérií. Je třeba definovat název vlastnosti a podmínku pro filtrování a kde vrátí objekty, které podmínku splňují. Předpokládejme například, že chcete získat služby, které jsou zastaveny. Můžete použít příkaz Get-Service | Where-Object Status -eq Stopped a získat všechny zastavené služby. Podmínku v rutině Where-Object lze zadat dvěma způsoby. Pomocí bloku skriptu můžete zadat název vlastnosti, operátor porovnání a hodnotu vlastnosti. Where-Object vrátí všechny objekty, pro které je příkaz bloku skriptů pravdivý. Můžete také napsat příkaz porovnání, který se mnohem více podobá přirozenému jazyku.

Syntaxe příkazu Where-Object:

Shell

1
2
3
4
5
6
7
8
9
10
11

## Kde-Object
##
## <String>
## <Object>]
## <ScriptBlock>
## | | | | | | |
## | | | | | | |
## | | | | |
## | | | |
## | | | | |
##

Where-Object Cmdlet Seznam argumentů:

  • -FilterScript: Určuje blok skriptu, který se použije k filtrování objektů. Blok skriptu uzavřete do závorek ({}).
  • -InputObject: Určuje objekty, které se mají filtrovat. Objekty můžete také zadat do roury Where-Object.
  • -Property: Určuje název vlastnosti objektu. Název parametru, Property, je nepovinný.
  • -Value: Určuje hodnotu vlastnosti. Název parametru Value je nepovinný.
  • -Contains:
  • -CContains: Hodnota vlastnosti objektu se přesně shoduje se zadanou hodnotou: Hodnota vlastnosti objektu se přesně shoduje se zadanou hodnotou. Při této operaci se rozlišují malá a velká písmena.
  • -NotContains: Pokud žádná z položek hodnoty vlastnosti není přesnou shodou se zadanou hodnotou.
  • -CNotContains: Pokud hodnota vlastnosti objektu není přesnou shodou pro zadanou hodnotu. Při této operaci se rozlišují malá a velká písmena.
  • -EQ: Hodnota vlastnosti je stejná jako zadaná hodnota.
  • -CEQ: Hodnota vlastnosti je stejná jako zadaná hodnota. Při této operaci se rozlišují malá a velká písmena.
  • -NE:
  • -CNE: Hodnota vlastnosti je jiná než zadaná hodnota: Hodnota vlastnosti je jiná než zadaná hodnota. Při této operaci se rozlišují malá a velká písmena.
  • -GE:
  • -CGE: Hodnota vlastnosti je větší nebo rovna zadané hodnotě: Hodnota vlastnosti je větší nebo rovna zadané hodnotě. Tato operace rozlišuje velikost písmen.
  • -GT: Hodnota vlastnosti je větší než zadaná hodnota.
  • -CGT: Hodnota vlastnosti je větší než zadaná hodnota. Při této operaci se rozlišují malá a velká písmena.
  • -In:
  • -CIn: Hodnota vlastnosti odpovídá některé ze zadaných hodnot: Hodnota vlastnosti obsahuje zadanou hodnotu. Při této operaci se rozlišují malá a velká písmena.
  • -NotIn: Hodnota je uvedena v hodnotě, která je v hodnotě:
  • -CNotIn: Hodnota vlastnosti se přesně neshoduje s žádnou ze zadaných hodnot: Pokud hodnota vlastnosti není přesnou shodou pro zadanou hodnotu. Tato operace rozlišuje velikost písmen.
  • -LE: Hodnota vlastnosti je menší nebo rovna zadané hodnotě.
  • -CLE: Hodnota vlastnosti je menší nebo rovna zadané hodnotě. Při této operaci se rozlišují malá a velká písmena.
  • -Like:
  • -CLike: Hodnota vlastnosti odpovídá hodnotě, která obsahuje zástupné znaky: Hodnota vlastnosti odpovídá hodnotě, která obsahuje zástupné znaky. Při této operaci se rozlišují malá a velká písmena.
  • -NotLike: Pokud hodnota vlastnosti neodpovídá hodnotě, která obsahuje zástupné znaky.
  • -CNotLike: Pokud hodnota vlastnosti neodpovídá hodnotě, která obsahuje zástupné znaky. Při této operaci se rozlišují malá a velká písmena.
  • -LT: Hodnota vlastnosti je menší než zadaná hodnota.
  • -CLT: Hodnota vlastnosti je menší než zadaná hodnota. Při této operaci se rozlišují malá a velká písmena.
  • -Match:
  • -CMatch: Hodnota vlastnosti odpovídá zadanému regulárnímu výrazu: Hodnota vlastnosti odpovídá zadanému regulárnímu výrazu. Při této operaci se rozlišují malá a velká písmena.
  • -NotMatch: Pokud hodnota vlastnosti neodpovídá zadanému regulárnímu výrazu.
  • -CNotMatch: Pokud hodnota vlastnosti neodpovídá zadanému regulárnímu výrazu. Tato operace rozlišuje velikost písmen.
  • -Is: Hodnota vlastnosti je instancí zadaného typu .NET. Název typu uzavřete do hranatých závorek.
  • -IsNot: Pokud hodnota vlastnosti není instancí zadaného typu .NET.

PowerShell Where-Object Cmdlet:

Filtrování výstupu na základě podmínky V prostředí PowerShell:

Shell

1
2
3
4
5
6
7
8
9
10
11
12

########################################
## PowerShell | Cmdlet | Where-Object ##
########################################
## PowerShell Nejnovější verze (5)
# filtrovat výstup na základě podmínky v PowerShellu
Get-Service | Where-Object Status -eq Stopped
Get-Service | Where-Object -Property Status -EQ -Value Stopped
Get-Service | Where-Object { $_.Status -eq „Stopped“ }

Filtrování výstupu na základě více podmínek v prostředí PowerShell:

Shell

1
2
3

## filtrovat výstup na základě více podmínek v PowerShell
Get-Service | Where-Object { $_.Status -eq „Stopped“ -and $_.DisplayName -match „Windows*“ }

Doufám, že se vám tento článek líbil. V příštím příspěvku se budeme zabývat rutinou ForEach-Object v prostředí PowerShell.

Chcete-li získat další podrobnosti o prostředí PowerShell, sledujte laskavě níže uvedenou oficiální dokumentaci

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about?view=powershell-5.1

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.