Write-Output
は、PowerShell で最も基本的なコマンドの一つで、オブジェクトを出力ストリーム(パイプライン)に送るために使用されます。
主に、スクリプトやコマンドの結果をユーザーに表示したり、次のコマンドに渡したりするために使われます。
この記事では、Write-Output
の基本的な使い方から応用例までを紹介します。
基本構文
Write-Output <出力したい内容>
単純な文字列やオブジェクトを出力する場合に使用します。
Write-Output "Hello, PowerShell!"
このコマンドを実行すると、”Hello, PowerShell!” という文字列がコンソールに表示されます。
エイリアス echo
や Write
との違い
Write-Output
にはエイリアスとして echo
や write
が用意されています。
これらは同じ動作をしますが、明示的に Write-Output
を使うことで、コードの可読性が向上します。
echo "これはエコーです"
write "これは書き込みです"
パイプラインでの使用
Write-Output
は、単にコンソールに表示するだけでなく、他のコマンドへデータを渡すための重要な役割を持っています。
たとえば、Write-Output
の出力を Where-Object
に渡してフィルタリングすることができます。
Write-Output 1, 2, 3, 4, 5 | Where-Object { $_ -gt 3 }
この例では、1から5の数字を出力し、その中から3より大きい数値(4, 5)をフィルタリングして表示します。
複数の値を出力する
Write-Output
では、カンマ区切りで複数の値を出力することができます。
Write-Output "Apple", "Banana", "Cherry"
このコマンドは、”Apple”, “Banana”, “Cherry” を順番にコンソールに表示します。
パイプラインの最後の自動出力
PowerShell では、スクリプトの最後に書かれたコマンドは暗黙的に出力されるため、Write-Output
を書かなくても、結果を出力できます。
"これは自動出力される文字列です"
しかし、コードの意図を明確にするために、明示的に Write-Output
を使うことが推奨される場合があります。
配列やオブジェクトの出力
Write-Output
は、配列やオブジェクトを出力することも簡単です。
$array = 1, 2, 3
Write-Output $array
この例では、配列の要素が個別に出力されます。
さらに、カスタムオブジェクトを作成して出力することも可能です。
$object = New-Object PSObject -Property @{
Name = "John"
Age = 30
}
Write-Output $object
Write-Output
の明示的な使用が推奨される場合
複雑なスクリプトや関数内では、明示的に Write-Output
を使用することで、出力のタイミングや内容を明確にすることができます。
たとえば、以下のような場合です。
function Test-Output {
param($value)
if ($value -eq $null) {
Write-Output "値が空です"
} else {
Write-Output "入力された値: $value"
}
}
まとめ
Write-Output
は、PowerShell スクリプトやコマンドの結果を出力するための基本的なコマンドです。シンプルにコンソールに表示する用途から、パイプラインで他のコマンドにデータを渡す役割まで、非常に柔軟に使うことができます。