HOME > Object系コマンドレット > Foreach-Object
Foreach-Object
Foreach-Objectは、オブジェクトを順次処理するコマンドです。
エイリアスforeach、%
解説
パイプラインで渡された各オブジェクトに対してスクリプトブロック内の操作を実行します。
データの処理、変換、フィルタリングなど、様々な場面で使用できます。
構文
- (構文)
- ForEach-Object [-Process] <scriptblock[]> [<CommonParameters>] ForEach-Object [-MemberName] <string> [<CommonParameters>]
パラメータ | 説明 |
---|---|
-InputObject オブジェクト | パイプラインを使用せずに、直接オブジェクトを指定して処理を行う |
-Begin スクリプトブロック | ループの最初に一度だけ実行するスクリプトブロックを指定する |
-Process スクリプトブロック | 各オブジェクトに対して実行するスクリプトブロックを指定する |
-End スクリプトブロック | ループの最後に一度だけ実行するスクリプトブロックを指定する |
-RemainingScripts スクリプトブロック | -Processパラメータに指定されたスクリプトブロックの後に実行するスクリプトブロックを指定する |
-MemberName メンバー名 | 指定したメンバー名を持つメソッドを各オブジェクトに対して呼び出す |
-ArgumentList 引数 | -MemberNameで指定したメソッドに渡す引数を指定する |
-WhatIf | 実行はせずに実行結果の確認のみ行う |
-Confirm | 実行前に確認メッセージの表示を行う |
共通的なパラメータは「共通パラメータ」をご覧ください。
サンプル
配列を回してコンソールに出力する
$arr = @("AAA", "BBB", "CCC)
$arr | ForEach-Object{ Write-Host $_ }
AAA
BBB
CCC
1~5をループ処理
1..5 | ForEach-Object { $_ * 2 }
(実行結果)
2
4
6
8
10
ファイルのリストを処理する
Get-ChildItem -Path "D:\test" | ForEach-Object { $_.Name }
プロセスリストをループ処理する
Get-Process | ForEach-Object { "$($_.Name) - $($_.CPU)" }
コマンドのヘルプを表示する
Get-Help Foreach-Object
備考
- $_はパイプラインで渡された現在のオブジェクトを指します。
関連項目
- Object系コマンドレット
- New-Object:オブジェクトを作成する
- Compare-Object:オブジェクトを比較する
- Sort-Object:オブジェクトをソートする
- Select-Object:オブジェクトを選択する
- ForEach-Object:オブジェクトを順次処理する
- Where-Object:オブジェクトをプロパティ値で選択する
- Group-Object:オブジェクトをグルーピングする
- Measure-Object:オブジェクトを指定した条件で計算する
- Tee-Object:xxx