759 words
4 minutes
【PowerShell】Write-Outputコマンドの基礎と活用方法
最終更新:2025-03-29
概要
Write-Output
は、PowerShellにおいてオブジェクトをパイプラインに出力するための基本的なコマンドレットである。単にコンソールに表示するだけでなく、後続のコマンドレットにデータを渡すためにも使用される。PowerShellでは、echo
やout
という別名でも利用可能である。
基本的な使い方
単純な文字列出力
最も基本的な使い方は、文字列を出力することである。
Write-Output "Hello, PowerShell!"
複数の値を出力
複数の値をカンマ区切りで指定すると、それぞれの値が個別に出力される。
Write-Output "値1", "値2", "値3"
変数の内容を出力
変数に格納された値を出力できる。
$name = "PowerShell"
Write-Output "こんにちは、$name!"
配列の出力
配列を出力すると、各要素が別々に表示される。
$array = @("要素1", "要素2", "要素3")
Write-Output $array
オブジェクト出力
オブジェクトを出力すると、PowerShellの既定の形式で表示される。
$process = Get-Process -Id $PID
Write-Output $process
応用的な使い方
-NoEnumerateパラメータ
-NoEnumerate
パラメータを使用すると、配列を単一のオブジェクトとして出力する。
$array = @("要素1", "要素2", "要素3")
Write-Output -NoEnumerate $array
パイプラインでの活用
Write-Output
はパイプラインの一部として他のコマンドレットと組み合わせて使用できる。
Write-Output "テキスト1", "テキスト2", "テキスト3" | Where-Object { $_ -like "*2*" }
別名の使用
Write-Output
はecho
やout
という別名でも使用できる。
echo "Hello, PowerShell!"
Write-HostとWrite-Outputの違い
Write-Host
はコンソールに直接出力するのに対し、Write-Output
はパイプラインにオブジェクトを送る。
# これはパイプラインにオブジェクトを送るため、後続の処理に使える
Write-Output "テスト" | Get-Member
# これは単にコンソールに表示するだけで、パイプラインには何も送らない
Write-Host "テスト" | Get-Member # Get-Memberは何も受け取れない
ハンズオン:Write-Outputの実践
以下は各種Write-Outputコマンドとその出力例である。
- 基本的な文字列出力
Write-Output "PowerShellを学習中です"
出力例:
PowerShellを学習中です
- 複数の値の出力
Write-Output "値1", "値2", "値3"
出力例:
値1
値2
値3
- 変数の出力
$version = $PSVersionTable.PSVersion
Write-Output "PowerShellのバージョン: $version"
出力例:
PowerShellのバージョン: 7.3.0
- 配列の出力(通常)
$fruits = @("りんご", "バナナ", "オレンジ")
Write-Output $fruits
出力例:
りんご
バナナ
オレンジ
- 配列の出力(NoEnumerate使用)
$fruits = @("りんご", "バナナ", "オレンジ")
Write-Output -NoEnumerate $fruits
出力例:
System.Object[] (配列オブジェクトとして表示)
- パイプラインでのフィルタリング
Write-Output "file1.txt", "file2.doc", "file3.pdf" | Where-Object { $_ -like "*.txt" }
出力例:
file1.txt
- 別名を使った出力
echo "これはechoの別名を使った出力です"
出力例:
これはechoの別名を使った出力です
- オブジェクトのプロパティ選択
$process = Get-Process -Id $PID
Write-Output $process | Select-Object Name, Id, CPU
出力例:
Name Id CPU
---- -- ---
powershell 1234 10.53
対応PowerShellバージョン
Write-Outputコマンドレットは以下のPowerShellバージョンで利用可能である:
- Windows PowerShell 1.0以降
- PowerShell Core 6.0以降
- PowerShell 7.0以降
参考サイト
【PowerShell】Write-Outputコマンドの基礎と活用方法
https://ss0832.github.io/posts/20250329_powershell_write_output/