Udostępnij za pomocą


Write-Output

Zapisuje określone obiekty w potoku.

Składnia

Default (Domyślna)

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 wzdłuż potoku jako pojedynczy 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 na konsoli $P.

$P = Get-Process
Write-Output $P

Przykład 2: Przekazywanie danych wyjściowych do innego cmdletu

To polecenie przesyła ciąg "test output" do polecenia cmdlet Get-Member, które wyświetla elementy członkowskie klasy System.String, co pokazuje, że ciąg został przekazany przez potok.

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 przesłania przez potok. Wprowadź zmienną zawierającą obiekty lub wpisz polecenie lub wyrażenie, które pobiera obiekty.

Właściwości parametru

Typ:

PSObject[]

Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:0
Obowiązkowy:True
Wartość z potoku:True
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów: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 rurze. 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 przekażesz Write-Output -NoEnumerate do innego polecenia cmdlet, to podrzędne polecenie cmdlet odbiera obiekt kolekcji, a nie poszczególne elementy tej kolekcji.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowy:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

CommonParameters

To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.

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