もくじ
📝 はじめに
PowerShellでスクリプトを書いていて、
「処理結果を次のコマンドに渡したい」
「変数や計算結果をそのまま出力したい」
と感じたことはありませんか?
そんなときに基本となるのが
Write-Output です。
PowerShellでは“出力”という考え方が非常に重要で、
Write-Output は
パイプラインに値を渡すための基本コマンドとして使われます。
- 処理結果を次のコマンドへ渡したい
- 関数やスクリプトの戻り値を返したい
- 値を加工・絞り込みしていきたい
✅ このコマンドでできること(要点)
- 値や文字列を出力できる
- パイプラインで次の処理に渡せる
- 関数・スクリプトの戻り値として使える
- PowerShellらしい処理の流れを作れる
✅ Write-Output でできること
Write-Output は、
値やオブジェクトを
PowerShellのパイプラインへ出力するためのコマンドです。
画面に表示される点では Write-Host と似ていますが、
Write-Output は
後続の処理に値を渡せるという大きな違いがあります。
考え方としては、「処理結果を次へ流すための出力」と覚えると分かりやすいです。
🧩 基本構文
Write-Output "出力したい値"
指定した値が出力され、必要に応じて次の処理へ渡されます。
▶ 基本的な使い方(まずこれだけ)
🔹 文字列を出力する
Write-Output "Hello PowerShell"
文字列がそのまま表示されれば問題ありません。
この結果が表示されていれば正常に動作しています。
🔹 変数の内容を出力する
$value = 100
Write-Output $value
変数の中身が出力されます。
エラーが出なければ次の処理へ渡せます。
🛠 よく使われる指定例
🔹 パイプで次のコマンドへ渡す
Write-Output "apple","banana","orange" | Where-Object { $_ -like "a*" }
出力された値が Where-Object に渡され、
条件に合うものだけが残ります。
🔹 関数の戻り値として使う
function Get-Message {
Write-Output "処理結果です"
}
Get-Message
関数の実行結果として値が返されます。
💼 実務でよく使う使用例(応用)
🔹 計算結果を次の処理へ渡す
$result = 5 + 3
Write-Output $result | ForEach-Object { $_ * 2 }
🔹 ファイル一覧を加工して出力
Get-ChildItem |
Write-Output |
Select-Object Name, Length
- Where-Object と組み合わせて絞り込み
- Select-Object で必要な情報だけ取得
- ForEach-Object で加工処理
🧩 よくある勘違い・つまずきポイント
- Write-Output を書かなくても暗黙的に出力される場合がある
- Write-Host と同じだと思ってしまう
- 画面表示専用だと勘違いする
- 複数値が配列として流れることを理解していない
- 出力順が処理順と異なると混乱する
🔄 cmdとの違いについて
cmd では echo が出力に使われますが、
PowerShell の Write-Output は
単なる表示ではなく「オブジェクトの出力」です。
パイプで次の処理へ渡せる点が大きな違いです。
⚠ エラー・うまく動かないときの確認ポイント
- Write-Host と混同していないか
- パイプラインの途中で止まっていないか
- 期待している型で出力されているか
- 暗黙の出力と重複していないか
🧠 注意点
PowerShellでは、明示的に
Write-Output を使わなくても
最後の式が自動的に出力されます。
ただし、可読性や意図を明確にしたい場合には
明示的に使うと分かりやすくなります。
📌 まとめ
- Write-Output は値を出力し次の処理へ渡すための基本コマンド
- 画面表示専用ではなくパイプラインが主目的
- 関数やスクリプトの戻り値として重要
- 次は Write-Host との使い分けを整理すると理解が深まる
🔎 PowerShellコマンドを探す
やりたいことからコマンドを探すこともできます。
- ファイルを削除したい
- 一覧を表示したい
- 文字列を検索したい
- 条件で絞り込みたい
- エラーや実行できない原因を調べたい
- 処理結果を次の処理に渡したい
- 関数の戻り値を返したい
