Udostępnij za pośrednictwem


Write-Output

Zapisuje określone obiekty w potoku.

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.

Write-Output wysyła obiekty do potoku podstawowego, znanego również jako strumień powodzenia . Aby wysłać obiekty błędów do strumienia błędów, użyj Write-Error.

Polecenie cmdlet jest zwykle używane w skryptach do wyświetlania ciągów i innych obiektów w konsoli. Jednym z wbudowanych aliasów dla Write-Output jest echo, podobne do tych w innych powłokach, które używają echo. Domyślne zachowanie polega na wyświetlaniu wyniku na końcu potoku. W programie PowerShell zazwyczaj nie jest konieczne używanie polecenia cmdlet w wystąpieniach, w których dane wyjściowe są domyślnie wyświetlane. Na przykład Get-Process | Write-Output jest odpowiednikiem Get-Process. Można też napisać echo "Home directory: $HOME", "Home directory: $HOME".

Domyślnie Write-Output wylicza obiekty w kolekcji. Jednak Write-Output może również przekazywać kolekcje przez potok jako jeden obiekt z parametrem NoEnumerate.

Przykłady

Przykład 1. Pobieranie obiektów i zapisywanie ich w konsoli

W tym przykładzie wyniki polecenia cmdlet Get-Process są przechowywane w zmiennej $P. Polecenie cmdlet Write-Output 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 polecenia cmdlet Get-Member, które wyświetla elementy członkowskie klasy System.String, pokazując, ż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 wysłania przez potok. Wprowadź zmienną zawierającą obiekty lub wpisz polecenie lub wyrażenie, które pobiera obiekty.

Typ:PSObject[]
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-NoEnumerate

Domyślnie polecenie cmdlet Write-Output 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 -NoEnumerate) 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 jeśli użyjesz potoku Write-Output -NoEnumerate kierując dane do innego polecenia cmdlet, wtedy polecenie cmdlet, do którego kierujesz dane, otrzyma obiekt kolekcji, a nie wyliczone elementy tej kolekcji.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

PSObject

Do tego polecenia cmdlet można przekazywać obiekty.

Dane wyjściowe

PSObject

To polecenie cmdlet zwraca obiekty przesyłane jako dane wejściowe.

Uwagi

Program PowerShell zawiera następujące aliasy dla Write-Output:

  • Wszystkie platformy:

    • echo
  • Windows:

    • write