Write-Output

指定したオブジェクトをパイプラインに書き込みます。

構文

Write-Output
     [-InputObject] <PSObject[]>
     [-NoEnumerate]
     [<CommonParameters>]

説明

指定したオブジェクトをパイプラインに書き込みます。 パイプラインの最後のコマンドの場合 Write-Output は、オブジェクトがコンソールに表示されます。

Write-Output は、成功ストリームとも呼ばれるプライマリ パイプラインにオブジェクトを 送信します。 エラー オブジェクトをエラー ストリームに送信するには、次を使用 Write-Errorします。

このコマンドレットは通常、コンソールに文字列およびその他のオブジェクトを表示するためにスクリプトで使用されます。 組み込みのエイリアスWrite-Outputの 1 つは、echoecho. 既定の動作では、パイプラインの最後に出力が表示されます。 PowerShell では、通常、既定で出力が表示されるインスタンスでコマンドレットを使用する必要はありません。 たとえば、Get-Process | Write-Output は、Get-Process と同じです。 または、 echo "Home directory: $HOME""Home directory: $HOME"き込むことができます。

既定では、 Write-Output コレクション内のオブジェクトを列挙します。 ただし、 Write-Output NoEnumerate パラメーターを使用して、コレクションを単一のオブジェクトとしてパイプラインに渡すこともできます。

例 1: オブジェクトを取得してコンソールに書き込む

この例では、コマンドレットの Get-Process 結果が変数に $P 格納されます。 このコマンドレットは Write-Output 、プロセス オブジェクト $P をコンソールに表示します。

$P = Get-Process
Write-Output $P

例 2: 別のコマンドレットに出力を渡す

このコマンドは、"test output" 文字列をコマンドレットにGet-Memberパイプします。このコマンドレットには System.String クラスのメンバーが表示され、パイプラインに沿って文字列が渡されたことを示します。

Write-Output "test output" | Get-Member

例 3: 出力の列挙を抑制する

このコマンドは、パイプラインを 介してコレクションまたは配列を 1 つのオブジェクトとして扱う NoEnumerate パラメーターを追加します。

Write-Output 1,2,3 | Measure-Object

Count    : 3
...

Write-Output 1,2,3 -NoEnumerate | Measure-Object

Count    : 1
...

パラメーター

-InputObject

パイプラインに送信するオブジェクトを指定します。 オブジェクトが格納されている変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。

Type:PSObject[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NoEnumerate

既定では、コマンドレットは Write-Output 常にその出力を列挙します。 NoEnumerate パラメーターは、既定の動作を抑制し、出力を列挙しないようにWrite-Outputします。 かっこが 強制的に列挙されるため、コマンドがかっこで囲まれている場合、NoEnumerate パラメーターは無効です。 たとえば、 (Write-Output 1,2,3) 配列を列挙します。

NoEnumerate パラメーターは、パイプライン内でのみ役立ちます。 コンソールで NoEnumerate効果を確認しようとすると、PowerShell がすべてのコマンド ラインの末尾に追加Out-Defaultされ、列挙が発生するため、問題が発生します。 ただし、パイプを別のコマンドレットに渡すと Write-Output -NoEnumerate 、ダウンストリーム コマンドレットはコレクションの列挙項目ではなく、コレクション オブジェクトを受け取ります。

重要

Windows PowerShell のこのスイッチには、PowerShell 6.2 以降で修正される問題があります。 NoEnumerate を使用し、InputObject パラメーターを明示的に使用しても、コマンドは列挙されます。 これを回避するには、InputObject 引数を位置指定して渡します。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

入力

PSObject

このコマンドレットにオブジェクトをパイプできます。

出力

PSObject

このコマンドレットは、入力として送信されたオブジェクトを返します。

メモ

Windows PowerShell には、次のエイリアスが Write-Output含まれています。

  • echo
  • write