Write-Output
將指定的物件傳送給管線中的下一個命令。 如果命令是管線中的最後一個命令,物件就會顯示在主控台中。
Syntax
Write-Output
[-InputObject] <PSObject[]>
[-NoEnumerate]
[<CommonParameters>]
Description
Cmdlet 會將 Write-Output
指定的物件向下傳送至下一個命令。
如果命令是管線中的最後一個命令,物件就會顯示在主控台中。
Write-Output
將對象傳送到主要管線,也稱為「輸出數據流」或「成功管線」。若要將錯誤物件傳送到錯誤管線,請使用 Write-Error。
這個 Cmdlet 通常是在指令碼中用來在主控台上顯示字串及其他物件。 的其中一個內建別名 Write-Output
與 echo
使用 echo
的其他殼層類似,預設行為是在管線結尾顯示輸出。 在 PowerShell 中,通常不需要在預設顯示輸出的實例中使用 Cmdlet。 例如,Get-Process | Write-Output
相當於 Get-Process
。 或者,echo "Home directory: $HOME"
可以寫入 "Home directory: $HOME"
根據預設, Write-Output
會透過提供給 Cmdlet 的集合列舉。 不過, Write-Output
也可以用來將集合傳遞至管線,做為具有 NoEnumerate 參數的單一物件。
範例
範例 1:取得物件並將其寫入主控台
$P = Get-Process
Write-Output $P
第一個命令會取得在計算機上執行的進程,並將其儲存在變數中 $P
。
第二和第三個命令會在控制台上顯示 中的 $P
進程物件。
範例 2:將輸出傳遞至另一個 Cmdlet
Write-Output "test output" | Get-Member
此命令會將 「test output」 字串管線傳送至 Get-Member
Cmdlet,此 Cmdlet 會顯示 System.String 類別的成員,示範字元串是在管線中傳遞的。
範例 3:隱藏輸出中的列舉
Write-Output 1,2,3 | Measure-Object
Count : 3
...
Write-Output 1,2,3 -NoEnumerate | Measure-Object
Count : 1
...
此命令會新增 NoEnumerate 參數,以透過管線將集合或陣列視為單一物件。
參數
-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)
仍然列舉陣列。
注意
此參數僅適用於 PowerShell Core 6.2 和更新版本。 在舊版的 PowerShell Core 上,即使使用此參數,仍會列舉集合。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
輸入
您可以使用管線會傳送至 Write-Output
。
輸出
Write-Output
會傳回提交為輸入的物件。