PowerShellでスクリプトを書くとき、
「画面にメッセージを表示したい」
「値を次のコマンドに渡したい」
と思ったことはありませんか?
そんなときに活躍するのが、PowerShellの基本出力コマンドWrite-Outputです。
この記事では、Write-Outputの基本的な使い方から、Write-Hostとの違い、実践的な使用例までを初心者にもわかりやすく解説します。
PowerShellでの出力の仕組みを理解することで、スクリプトの品質を大きく向上させることができます!
Write-Outputとは?役割と特徴

Write-Outputは、PowerShellで値やメッセージを標準出力(Standard Output)に送るためのコマンドレットです。
出力された内容は以下のように活用されます:
- 画面に表示される
- パイプラインで次のコマンドに渡される
- 関数の返り値になる
基本的な使い方
書き方は非常にシンプルです:
Write-Output "こんにちは、PowerShell!"
出力結果:
こんにちは、PowerShell!
数値・配列の出力も可能です:
Write-Output 123
Write-Output @(1, 2, 3)
Write-Hostとの違いは?どちらを使うべき?

PowerShell初心者がよく混同するのが Write-Host との違いです。
| 比較項目 | Write-Output | Write-Host |
|---|---|---|
| 出力先 | 標準出力(pipeline) | コンソールに直接表示 |
| パイプ利用 | 可能 | 不可(値はパイプに渡らない) |
| 実行結果の再利用 | 可能(関数の戻り値など) | 不可 |
| 推奨される用途 | ロジック上の出力、スクリプト処理 | 単なる表示(デバッグ・通知)向け |
つまり、「後で使う値」を出力する場合は必ずWrite-Outputを使うのがベストプラクティスです!
パイプラインとの連携が強み
Write-Outputは、パイプ(|)と組み合わせて処理を流すのに最適です。
例:配列をフィルタリング
Write-Output 1 2 3 4 5 | Where-Object { $_ -gt 3 }
出力結果:
4
5
これは、Write-Outputが値をパイプで渡しているからこそ可能な処理です。
実践例:ログ出力や値の返却に使う方法

例1:ログに出力
Write-Output "ログ開始: $(Get-Date)" | Out-File "log.txt" -Append
例2:関数から値を返す
function Get-Message {
Write-Output "これは返り値です"
}
$result = Get-Message
Write-Output $result
よくある誤解・注意点
| 誤解・問題点 | 対処法・正しい理解 |
|---|---|
Write-Hostも出力に使える? | デバッグ用にはOK、本格処理ではWrite-Outputを推奨 |
Write-Outputでなく単に文字列を書いてもいい? | 可能ですが、明示的にWrite-Outputを書くと意図が伝わりやすい |
| 値が表示されない | 変数に代入している可能性があります。出力を見たいときは明示的に表示しましょう |
まとめ:出力の基本を押さえてスクリプトを整えよう
PowerShellで出力処理を理解することは、スクリプトの可読性・再利用性・安定性を高める第一歩です。
ポイントまとめ:
Write-Outputは標準出力を生成する基本コマンドWrite-Hostとの違いを理解して適切に使い分けよう- パイプや関数返却など多彩なシナリオで活用できる
- ログ出力やスクリプト内のデータフロー制御にも最適
PowerShellの本格的なスクリプト運用を目指すなら、Write-Outputを確実に使いこなせるようになりましょう!


コメント