Udostępnij za pośrednictwem


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ą echopolecenia . 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

PSObject

Obiekty można potokować do Write-Outputobiektu .

Dane wyjściowe

PSObject

Write-Output zwraca obiekty przesyłane jako dane wejściowe.