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.
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:
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:
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:
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
.