1. ホーム
  2. スクリプト・コラム
  3. パワーシェル

PowerShellでパイプラインを終了させる方法

2022-02-05 12:25:05

パイプラインから取得したい要素数があらかじめわかっている場合、ストリーム処理コマンドのパイプラインをSelect-Objectで終了させることで、大幅な時間短縮が可能です。

次の例では、Windows フォルダから explorer.exe の例を検索していますが、これは Select-Object ステートメントが結果を見つけた瞬間にパイプラインを終了させるからです。そうでなければ、Get-ChildItem はすべてのサブディレクトリを再帰的に反復して、欲しい結果をマッチングさせます。

コピーコード コードは以下の通りです。

#requires -Version 3

Get-ChildItem -Path c:\Windows -Recurse -Filter explorer.exe -ErrorAction SilentlyContinue |
Select-Object -First 1


なお、Select-Objectは、PowerShell 3.0以降にのみ導入されたストリーム処理コマンドパイプラインのこの機能を終了させることができます。以前のバージョンの windows powershell では、select -first 1 ですべての結果を取得し、最初の 1 つを取得することができました。