パイプライン
パイプライン記号「|」を使って、複数のコマンドを連携させることができます
パイプラインの構文
パイプライン要素1[ | パイプライン要素2][ | パイプライン要素3]…
# []の部分は省略可能
この構文を見ていただければわかる通り、実はコマンドレット1つだけでもパイプラインです。
Example
具体的には、以下のようにコマンドレットとパイプライン記号「|」を組み合わせて記述します。
Get-Process | Select-Object Name
ForEach-Object
パイプラインの逐次処理には、ForEach-Objectを使用します。
ForEach-Objectのエイリアス
ForEach-Objectには、以下のエイリアスがあります。
foreach
%
Example
# 1から3までの値を、それぞれ2倍にして出力する
PS> 1..3 | ForEach-Object {$_ * 2}
PS> 2
PS> 4
PS> 6
自動変数の$_と$PSItem
$_は、パイプラインで扱っている現在の値を示す自動変数です。
$_と同じ意味で、$PSItemというものもあります。
3つのフェーズ
パイプラインの逐次処理には、Begin、Process、Endの3つのフェーズがあります。
# 1から3までの値の、総和を出力する
PS> 1..3 | % {$sum=0} {$sum+=$_} {$sum}
PS> 6
総和をただ出力しただけでは、さきほど話した3つのフェーズについてわからないので、
各フェーズがわかるように書き換えていきます。
# 1から3までの値の、総和を出力する
PS> 1..3 | % {$sum=0;"Begin $sum $_”} {$sum+=$_;"Process $sum $_"} {"End $sum $_"}
PS> Begin 0
PS> Process 1 1
PS> Process 3 2
PS> Process 6 3
PS> End 6
ForEach-Objectでの省略した書き方
Example 1
PS> Get-Process | ForEach-Object {$_.ProcessName}
↓省略した書き方
PS> Get-Process | ForEach-Object ProcessName
Example 2
PS> ‘String' | ForEach-Object {$_.ToUpper()}
↓省略した書き方
PS> ‘String' | ForEach-Object ToUpper
STRING
PS> ‘String' | ForEach-Object ToLower
string
Where-Object
オブジェクトをFilterするには、Where-Objectを使用します。
Where-Objectのエイリアス
Where-Objectには2つのエイリアスがあります。
where
?
Where-Objectでの省略した書き方
Get-Process | where {$_.Name -like "*chrome"}
↓省略した書き方
Get-Process | where Name -like "*chrome"
Select-Object
パイプラインでオブジェクトを選択するには、Select-Objectを使用します。
PS> 1..10 | Select-Object -First 3
1
2
3
PS> 1..10 | Select-Object -Last 3
8
9
10
Sort-Object
パイプラインでオブジェクトを整列させるには、Sort-Objectを使用します。
PS> 1..10 | Sort-Object -Descending | Select-Object -First 3
10
9
8
PS> 1..10 | Sort-Object -Descending | Select-Object -Last 3
3
2
1
Measure-Object
オブジェクトの集計には、Measure-Objectが便利です。
PS> 1..10 | Measure-Object -Sum
Count : 10
Average :
Sum : 55
Maximum :
Minimum :
StandardDeviation :
Property :
すべての結果を得るには、AllStatsパラメーターを指定します。
PS> 1..10 | Measure-Object -AllStats
Count : 10
Average : 5.5
Sum : 55
Maximum : 10
Minimum : 1
StandardDeviation : 3.02765035409749
Property
YouTube
動画による説明はこちら。
スポンサーリンク