皆様こんにちは

クラウドアフェールへようこそ、Debjeetです。

前回のブログ記事では、PowerShellにおけるSort-Object cmdletについて述べました。

PowerShell Sort-Object Cmdlet

このブログ記事では、PowerShellにおけるWhere-Object cmdletについて述べることに致します。 PowerShellでWhere-Objectコマンドレットを使用すると、特定の条件に基づいてオブジェクトをフィルターすることができます。 プロパティ名とフィルタリングの条件を定義し、条件を満たすオブジェクトが返される場所を指定する必要があります。 例えば、停止しているサービスを取得したいとします。 Get-Service | Where-Object Status -eq Stopped コマンドを使用すると、停止しているすべてのサービスを取得することができます。 Where-Objectコマンドレットにおける条件は、2つの方法で提供することができます。 スクリプト ブロックを使用して、プロパティ名、比較演算子、およびプロパティ値を指定することができます。 Where-Objectは、スクリプトブロックのステートメントが真であるすべてのオブジェクトを返します。 また、比較ステートメントを書くこともでき、これはより自然言語に近い。

Where-Object Cmdlet の構文。

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

## Where- (どこだ)Object
## <String>
## <Object>]
## <ScriptBlock>
## | | | | |
## | | | |
## | | | |
## | | |

Where->

## | | | |

## | | | | |

##
##

## | | | | |

## | | | |

  • -FilterScript: オブジェクトをフィルターするために使用されるスクリプト ブロックを指定します。 スクリプトブロックは中括弧({})で囲みます。
  • -InputObject: フィルタリングするオブジェクトを指定します。 Where-Object.
  • -Property にオブジェクトをパイプすることもできます。 オブジェクトのプロパティ名を指定します。 パラメータ名Propertyは省略可能です。
  • -Value。 プロパティ値を指定します。 パラメータ名Valueは省略可能です。
  • -Contains: オブジェクトのプロパティ値は、指定された値と完全に一致します。 オブジェクトのプロパティ値は、指定された値と完全に一致します。 この操作は大文字と小文字を区別する.
  • -NotContains: プロパティ値のどの項目も指定された値と完全に一致しない場合。
  • -CNotContains: オブジェクトのプロパティ値が指定された値と完全に一致する場合。 オブジェクトのプロパティ値が、指定された値と完全に一致しない場合。
  • -EQ: プロパティ値が指定された値と同じである。
  • -CEQ: プロパティ値が指定された値と同じである。 この操作は大文字と小文字を区別します。 プロパティ値が指定値と異なる。 プロパティ値が指定値と異なります。
  • -GE: プロパティ値が指定値と異なる.この操作は大文字小文字を区別する: プロパティ値が指定値以上である。 プロパティ値が指定値以上であることを示します。
  • -GT: プロパティ値が指定値以上.
  • -CGT: プロパティ値が指定値以上.
  • -CGT: プロパティ値が指定値未満.この操作は、ケース感受性があります. この操作は大文字と小文字を区別します。
  • -In: プロパティ値が指定された値のいずれかに一致します。
  • -CIn: プロパティ値に指定値が含まれる。 この操作は大文字と小文字を区別する.
  • -NotIn: プロパティ値は、指定された値のいずれにも完全には一致しません。
  • -CNotIn: プロパティ値が指定された値と完全に一致しない場合。 この操作は大文字と小文字を区別します。
  • -LE: プロパティ値が指定値以下である場合。
  • -CLE: プロパティ値が指定値以下であることを示します。 この操作は大文字と小文字を区別します。
  • -Like: プロパティ値は、ワイルドカード文字を含む値と一致します。
  • -CLike: プロパティ値は、ワイルドカード文字を含む値と一致します。 この操作は大文字と小文字を区別する.
  • -NotLike: プロパティ値が、ワイルドカード文字を含む値と一致しない場合。
  • -CNotLike: プロパティ値が、ワイルドカード文字を含む値と一致しない場合。 プロパティ値が、ワイルドカード文字を含む値と一致しない場合。 この操作は大文字と小文字を区別する.
  • -LT: プロパティ値が指定値より小さい.
  • -CLT: プロパティ値が指定値より小さい. この操作は大文字と小文字を区別する.
  • -Match: プロパティ値が指定された正規表現に一致します。
  • -CMatch: プロパティ値が指定された正規表現に一致します。 プロパティ値が指定された正規表現に一致します。 この操作は大文字と小文字を区別する.
  • -NotMatch: プロパティ値が指定された正規表現に一致しない場合。
  • -CNotMatch: プロパティ値が指定された正規表現に一致しない場合。 プロパティ値が指定された正規表現と一致しない場合。 この操作は大文字と小文字を区別する.
  • -Is: プロパティ値が指定された.NET型のインスタンスである場合。 タイプ名を角括弧で囲みます。
  • -IsNot: プロパティ値が指定された.NETタイプのインスタンスでない場合。

PowerShell Where-Object Cmdlet:

Filter Output Based On Condition In PowerShell.NET:Where-ObjectCmdlet:Where-ObjectCmdletを使用して、条件に基づいて出力をフィルタリングすることができます。

シェル
1
2
3
4
5
6
78
9
10
11
12

########################

PowerShell | Cmdlet | Where- (場所)オブジェクト ##
################ PowerShell 最新バージョン (5)
# filter output based on condition in PowerShell
Get-Service | Where-Object Status -eq Stopped
Get-Service | Where-Object -Property Status -EQ -Value Stopped
Get-Service | Where-Object { $_.ステータス -eq “Stopped” }.

PowerShell で複数の条件に基づいて出力をフィルタリングする。

Shell
1
2
3

# filter output based on multiple conditions in PowerShell
Get-Service | Where-Object { $_.Status -eq “Stopped” -and $_.DisplayName -match “Windows*” }

この記事を楽しんでいただけたでしょうか。 次回のブログでは、PowerShell の ForEach-Object コマンドレットについて説明します。

PowerShell の詳細については、以下の公式ドキュメント

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

を参照してください。

コメントを残す

メールアドレスが公開されることはありません。