Write-Output
Zapisuje określone obiekty w potoku. Jeśli Write-Output
jest ostatnim poleceniem w potoku, obiekty są wyświetlane w konsoli programu .
Składnia
Write-Output
[-InputObject] <PSObject[]>
[-NoEnumerate]
[<CommonParameters>]
Opis
Zapisuje określone obiekty w potoku. Jeśli Write-Output
jest ostatnim poleceniem w potoku, obiekty są wyświetlane w konsoli programu .
Write-Output
wysyła obiekty do potoku podstawowego, nazywanego również "strumieniem wyjściowym" lub "potokiem powodzenia". Aby wysłać obiekty błędów do potoku błędów, użyj polecenia Write-Error
.
To polecenie cmdlet jest zwykle używane w skryptach do wyświetlania ciągów i innych obiektów w konsoli programu . Jeden z wbudowanych aliasów dla Write-Output
programu jest echo
podobny do innych powłok, które używają echo
polecenia . Domyślne zachowanie polega na wyświetlaniu danych wyjściowych na końcu potoku. W programie PowerShell zazwyczaj nie trzeba używać polecenia cmdlet w wystąpieniach, w których dane wyjściowe są domyślnie wyświetlane. Na przykład instrukcja Get-Process | Write-Output
jest równoważna instrukcji Get-Process
. Lub, echo "Home directory: $HOME"
można napisać, "Home directory: $HOME"
.
Domyślnie Write-Output
wylicza obiekty kolekcji. Write-Output
Można jednak również użyć do przekazywania kolekcji w dół potoku jako pojedynczego obiektu z parametrem NoEnumerate.
Przykłady
Przykład 1. Pobieranie obiektów i zapisywanie ich w konsoli
W tym przykładzie wyniki Get-Process
polecenia cmdlet są przechowywane w zmiennej $P
. Polecenie Write-Output
cmdlet wyświetla obiekty procesu w $P
konsoli programu .
$P = Get-Process
Write-Output $P
Przykład 2. Przekazywanie danych wyjściowych do innego polecenia cmdlet
To polecenie potokuje ciąg "test output" do Get-Member
polecenia cmdlet, które wyświetla elementy członkowskie klasy System.String , co pokazuje, że ciąg został przekazany wzdłuż potoku.
Write-Output "test output" | Get-Member
Przykład 3. Pomijanie wyliczenia w danych wyjściowych
To polecenie dodaje parametr NoEnumerate w celu traktowania kolekcji lub tablicy jako pojedynczego obiektu za pośrednictwem potoku.
Write-Output 1,2,3 | Measure-Object
Count : 3
...
Write-Output 1,2,3 -NoEnumerate | Measure-Object
Count : 1
...
Parametry
-InputObject
Określa obiekty do wysyłania potoku. Wprowadź zmienną zawierającą obiekty lub wpisz polecenie lub wyrażenie, które pobiera obiekty.
Type: | PSObject[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NoEnumerate
Domyślnie Write-Output
polecenie cmdlet zawsze wylicza jego dane wyjściowe. Parametr NoEnumerate pomija zachowanie domyślne i uniemożliwia Write-Output
wyliczanie danych wyjściowych. Parametr NoEnumerate nie ma wpływu, jeśli polecenie jest opakowane w nawiasy, ponieważ nawiasy wymuszają wyliczenie. Na przykład (Write-Output 1,2,3)
nadal wylicza tablicę.
Parametr NoEnumerate jest przydatny tylko w potoku. Próba wyświetlenia efektów noEnumerate w konsoli jest problematyczna, ponieważ program PowerShell dodaje Out-Default
na końcu każdego wiersza polecenia, co powoduje wyliczenie. Jednak w przypadku potoku Write-Output -NoEnumerate
do innego polecenia cmdlet podrzędne polecenie cmdlet odbiera obiekt kolekcji, a nie wyliczone elementy kolekcji.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Dane wejściowe
Obiekty można potokować do Write-Output
obiektu .
Dane wyjściowe
Write-Output
zwraca obiekty przesyłane jako dane wejściowe.