もくじ
📝 はじめに
PowerShellで一覧を表示していると、
「既存の情報だけでは少し物足りない」
「計算した結果を列として一緒に表示したい」
と感じることはありませんか?
そんなときに活躍するのが
Select-Object の
計算プロパティです。
この記事では、PowerShellで新しい列を追加して表示する基本的な方法を、
実例を交えながら分かりやすく解説します。
- 数値を計算して分かりやすく表示したい
- 元データを加工せずに表示だけ変えたい
- レポート用の列を一時的に作りたい
✅ このコマンドでできること(要点)
- 既存のプロパティをもとに新しい列を追加できる
- 計算結果や加工した値を表示できる
- 表示専用のため元データは変更されない
- 他のコマンドと組み合わせて使える
✅ Select-Object の計算プロパティでできること
計算プロパティは、
Select-Object で
「名前」と「計算式」を指定して作る仮想的な列です。
元のオブジェクトに項目を追加するのではなく、
表示時だけ列を増やすという考え方になります。
🧩 基本構文
Select-Object プロパティ名, @{Name="列名"; Expression={計算式}}
Name が列名、
Expression が計算内容です。
▶ 基本的な使い方(まずこれだけ)
🔹 メモリ使用量をMBで表示する
Get-Process |
Select-Object Name, @{Name="MemoryMB"; Expression={$_.WorkingSet64 / 1MB}}
バイト単位の値をMBに換算した列が追加されます。
数値が表示されていれば、計算プロパティは正しく動作しています。
🔹 日付を加工して表示する
Get-ChildItem |
Select-Object Name, @{Name="Updated"; Expression={$_.LastWriteTime.ToString("yyyy/MM/dd")}}
日付の表示形式を変えた列を追加できます。
🛠 よく使われる指定例
🔹 条件に応じて値を表示する
Get-Process |
Select-Object Name,
@{Name="HighCPU"; Expression={ if ($_.CPU -gt 10) { "Yes" } else { "No" } }}
条件分岐を使って、判定結果を列として表示できます。
🔹 複数の計算列を追加する
Get-ChildItem |
Select-Object Name,
@{Name="SizeKB"; Expression={$_.Length / 1KB}},
@{Name="SizeMB"; Expression={$_.Length / 1MB}}
必要に応じて、計算プロパティは複数指定できます。
💼 実務でよく使う使用例(応用)
🔹 レポート用の表示を作る
Get-Process |
Sort-Object CPU -Descending |
Select-Object -First 5 Name,
@{Name="CPU(sec)"; Expression={[math]::Round($_.CPU,2)}},
@{Name="Memory(MB)"; Expression={[math]::Round($_.WorkingSet64 / 1MB,1)}}
表示用に丸めた数値を列として追加できます。
🔹 ファイル情報を分かりやすく整形
Get-ChildItem |
Select-Object Name,
@{Name="Size(MB)"; Expression={[math]::Round($_.Length / 1MB,2)}},
LastWriteTime
- Sort-Object で並び替えてから列追加
- Where-Object で条件抽出してから計算
- Format-Table で見やすく表示
🧩 よくある勘違い・つまずきポイント
- 元のオブジェクトに列が追加されるわけではない
- $_ は現在の1件を指す
- 数値以外のプロパティは計算できないことがある
- 表示専用なのでCSV出力前は注意が必要
- 式が長くなると可読性が下がりやすい
⚠ エラー・うまく動かないときの確認ポイント
- プロパティ名の指定が正しいか
- 計算式の中で $_ を使っているか
- 数値型として扱える値か
- 式の括弧や記号が欠けていないか
🧠 注意点
計算プロパティは非常に便利ですが、
複雑になりすぎると読みづらくなります。
実務では「分かりやすさ」を優先して使うのがおすすめです。
📌 まとめ
- Select-Object の計算プロパティで列を自由に追加できる
- 計算・加工した値を表示用に作れる
- 元データを壊さずに見やすくできる
- 次は Group-Object や Measure-Object と組み合わせると便利
🔎 PowerShellコマンドを探す
やりたいことからコマンドを探せます。
- ファイルを削除したい
- 一覧を表示したい
- 文字列を検索したい
- 条件で絞り込みたい
- エラーや実行できない原因を調べたい
- 列を追加して表示したい
- 数値を計算して表示したい
