Write-Host、Write-Output 、echo の使い分けはとても重要

スポンサード リンク

このページでは Windows Powershell において文字を出力する関数であるWrite-Host、Write-Output 、echoの違いに関して説明します。一見どれも標準出力に出力するため違いがないような気がしますが、関数内で実行した場合には大きな違いが発生しますので、使用する場合は注意が必要です。

関数内でWrite-Output や echo を使用すると標準出力への出力ではなく、戻り値として設定されてしまうようです。よって標準出力への出力を行う場合は、Write-Hostを使うべきです。

スポンサード リンク

(注意)分かりやすく簡単に記載しており、一部の環境や分野では記載内容が異なる可能性があります。あくまでも参考程度でお読みください。

比較表

比較は以下の表の通りとなります。

説明Write-HostWrite-Output echo
コンソール上で実行コンソールに出力される。
コンソールに出力される。
コンソールに出力される。
関数(ファンクション)内で実行コンソールに出力される。
戻り値に設定される。
戻り値に設定される。
関数(ファンクション)内での実行例> $x = Write-Host "123"
123
> echo $x
(なし)

#上記の通り、単に標準出力に出力するだけで関数には影響を与えない。
>$x = Write-Output "123"
>Write-Host $x
123

#上記の通り、Write-Outputは関数の戻り値に設定される。
>$x = echo "123"
> Write-Host $x
123

#上記の通り、echo は関数の戻り値に設定される。
実行図




スポンサード リンク







【注意】本ページは著作権で保護されています。内容は何人も補償しません。時間的あるいは金銭的損失等、一切保証しません。

理解しやすく記載されており、一部不正確な記載がある可能性があります。ご自身の責任で参考にしてください。