Write-Output
指定したオブジェクトをパイプラインに書き込みます。
構文
Write-Output
[-InputObject] <PSObject[]>
[-NoEnumerate]
[<CommonParameters>]
説明
指定したオブジェクトをパイプラインに書き込みます。 パイプラインの最後のコマンドの場合 Write-Output
は、オブジェクトがコンソールに表示されます。
Write-Output
は、成功ストリームとも呼ばれるプライマリ パイプラインにオブジェクトを 送信します。 エラー オブジェクトをエラー ストリームに送信するには、次を使用 Write-Error
します。
このコマンドレットは通常、コンソールに文字列およびその他のオブジェクトを表示するためにスクリプトで使用されます。 組み込みのエイリアスWrite-Output
の 1 つは、echo
echo
. 既定の動作では、パイプラインの最後に出力が表示されます。 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 |
入力
このコマンドレットにオブジェクトをパイプできます。
出力
このコマンドレットは、入力として送信されたオブジェクトを返します。
メモ
Windows PowerShell には、次のエイリアスが Write-Output
含まれています。
echo
write
関連リンク
PowerShell
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示