[登録されているタグ]

[記事公開日]2025/12/20

PowerShellで列を追加する|Select-Object の計算プロパティ

📝 はじめに

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-ObjectMeasure-Object と組み合わせると便利

🔎 PowerShellコマンドを探す

やりたいことからコマンドを探せます。

  • ファイルを削除したい
  • 一覧を表示したい
  • 文字列を検索したい
  • 条件で絞り込みたい
  • エラーや実行できない原因を調べたい
  • 列を追加して表示したい
  • 数値を計算して表示したい
Generic filters

サイト内検索(入力すると候補が出ます)

Generic filters


Generic filters

Generic filters

すべてを開く | すべてを閉じる
ページ上部へ戻る