PowerShellでの「|」(バーチカルバー、縦棒、パイプ記号)の意味

PowerShellPowerShell

リファレンス系は逆引きリファレンスは充実してますが、記号は検索にかかりにくいのかあまりないので、メモしておきます。

スポンサーリンク

「|」(バーチカルバー、縦棒、パイプ記号)はパイプライン

パイプラインといわれてもピンと来ないかもしれませんので、説明していきます。

私も最初はピンときませんでした。

簡単に言うとパイプラインと、左から右にパイプしてあげるようなイメージです。「|」右側のコマンドの結果を左のコマンドに渡してあげるものです。

例を交えて説明をしていきます。

よく使われるのがこれ

Get-Process |Out-Null

これは何をやっているかというと、「Get-Processでいろんな情報を取ったけど、取った情報をOut-Nullで出力しませんよ」ということです。

よくわからない方はまずは「Get-Process」だけで実行してみてください。すると以下のように出力されるはずです。

 NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
 ------    -----      -----     ------      --  -- -----------
      7     1.04       1.52       0.05    1812   0 armsvc
     21    49.75      74.49      15.75    1516   2 chrome
     16    18.29      27.98       0.88    2144   2 chrome
      8     1.37       1.96       0.33    3732   2 chrome
     16    18.38      32.25       0.89    3992   2 chrome
     24    57.83      98.76       8.28    4052   2 chrome

次に「Get-Process |Out-Null」を実行してみてください。
すると何も出力されないと思います。

つまり、Getしたものを「|」(パイプライン)を通して、Outに渡してあげたけどNullで削除されちゃった感じです。

Out-Null
PowerShell(out-nullで出力を捨てる、再帰的ファイル一覧)
(本記事はPowerShell入門記事としてコチラにもまとめています。)「PowerShell(変数)」の続きです。PowerShellでディレクトリを作成しようとすると、ディレクトリ作成だけでなく、親切にもたくさんのメッセージを表示してく

もひとつくらい例を使って説明します。

Dir | Sort-Object Length -descending

こちらのコードです。

「Dir」こちらは現在のディレクトリを取得するコマンドになります。

それに対して「Sort」を実施するという意味です。Lengthはファイルサイズなので、ファイルサイズで降順(descending)に並べて出力するコマンドです。

つまり、「Dirで現在のディレクトリのファイル一覧を取得した、パイプラインでSortに渡して取得した情報をLengthでdescendingしました」ということです。

すみません。

べたなのをやっていなかったので、もう一つ

Get-Service | Where-Object Name -eq AdobeARMservice

こちらはもうわかると思いますが、「Service」を取得して、「Name」が「AdobeARMservice」のものでフィルターしています。

まとめ

結構適当に書いてますが、大体あってると思います。

あとはコーディングして、動きを見てるとだんだんわかってくると思います。

https://docs.microsoft.com/ja-jp/powershell/scripting/learn/ps101/04-pipelines?view=powershell-7

エンジニア転職なら【Tech Stars Agent】

フリーランスを目指すなら【テックパートナーズカレッジ】

未経験者向けWEBスクール【SHElikes】

コメント

タイトルとURLをコピーしました