Write-Output

將指定的物件寫入管線。

Syntax

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

Description

將指定的物件寫入管線。 如果 Write-Output 是管線中的最後一個命令,對象會顯示在控制台中。

Write-Output 將對象傳送至主要管線,也稱為 成功數據流。 若要將錯誤物件傳送至錯誤資料流,請使用 Write-Error

此 Cmdlet 通常用於文稿,以顯示控制臺上的字串和其他物件。 的其中一個內建別名 Write-Outputecho 使用 echo的其他殼層類似。 默認行為是在管線結尾顯示輸出。 在 PowerShell 中,通常不需要在預設顯示輸出的實例中使用 Cmdlet。 例如,Get-Process | Write-Output 相當於 Get-Process。 或者, echo "Home directory: $HOME" 可以寫入 "Home directory: $HOME"

根據預設, Write-Output 列舉集合中的物件。 不過,Write-Output也可以使用 NoEnumerate 參數,將集合傳遞至管線作為單一物件

範例

範例 1:取得物件並將其寫入主控台

在此範例中 Get-Process ,Cmdlet 的結果會儲存在 變數中 $P 。 Cmdlet 會將 Write-Output 中的進程對象 $P 顯示至主控台。

$P = Get-Process
Write-Output $P

範例 2:將輸出傳遞至另一個 Cmdlet

此命令會將 「test output」 字串傳送至 Get-Member Cmdlet,此 Cmdlet 會顯示 System.String 類別的成員,示範該字串是沿著管線傳遞的。

Write-Output "test output" | Get-Member

範例 3:隱藏輸出中的列舉

此命令會新增 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 Cmdlet 一律會列舉其輸出。 NoEnumerate 參數會隱藏預設行為,並防止Write-Output列舉輸出。 如果命令包裝在括弧中,NoEnumerate 參數就沒有作用,因為括號強制列舉。 例如, (Write-Output 1,2,3) 仍然列舉陣列。

NoEnumerate 參數只有在管線內才有用。 嘗試在控制台中看到 NoEnumerate 的效果有問題,因為 PowerShell 會新增Out-Default至每個命令行的結尾,這會導致列舉。 但是,如果您透過管線 Write-Output -NoEnumerate 傳送至另一個 Cmdlet,下游 Cmdlet 會接收集合物件,而不是集合的列舉專案。

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

輸入

PSObject

您可以使用管線將物件傳送至此 Cmdlet。

輸出

PSObject

此 Cmdlet 會傳回提交為輸入的物件。

備註

PowerShell 包含下列的 Write-Output別名:

  • 所有平臺:

    • echo
  • Windows:

    • write