121

PowerShellのWrite-HostWrite-Outputの違いは何ですか?

お気に入り...

Write-Host "Hello World";

Write-Output "Hello World";
4

5 に答える 5

45

Write-Output は出力をパイプラインに送信します。そこから、別のコマンドレットにパイプするか、変数に割り当てることができます。Write-Host はそれをコンソールに直接送信します。

$a = 'Testing Write-OutPut'  | Write-Output
$b = 'Testing Write-Host' | Write-Host

Get-Variable a,b

出力:

Testing Write-Host

Name                           Value                                                                 
----                           -----                                                                 
a                              Testing Write-OutPut                                                  
b                                                  

出力を変数に割り当てるか、別のコマンドにパイプすることによってパイプラインへの出力をどうするかを Powershell に指示しない場合、通常はコンソールである out-default に送信されるため、最終結果は同じように表示されます。 .

于 2013-11-03T15:12:36.973 に答える
10

Write-Outputパイプラインを介してデータをオブジェクトとして送信します。質問の例では、文字列を渡すだけです。

Write-Hostホスト依存です。コンソールWrite-Hostでは、本質的にやってい[console]::WriteLineます。詳細については、これを参照してください。

于 2013-11-03T15:10:17.960 に答える