Freigeben über


Write-Output

Schreibt die angegebenen Objekte in die Pipeline.

Syntax

Write-Output
     [-InputObject] <PSObject[]>
     [-NoEnumerate]
     [<CommonParameters>]

Beschreibung

Schreibt die angegebenen Objekte in die Pipeline. Wenn Write-Output der letzte Befehl in der Pipeline ist, werden die Objekte in der Konsole angezeigt.

Write-Output sendet die Objekte in die primäre Pipeline, die auch als Erfolgsstream bezeichnet wird. Verwenden Sie Write-Error, um Fehlerobjekte an den Fehlerstream zu senden.

Dieses Cmdlet wird in der Regel in Skripts zum Anzeigen von Zeichenfolgen und anderen Objekten auf der Konsole verwendet. Einer der integrierten Aliase für Write-Output ist echo, ähnlich wie andere Shells, die echo verwenden. Das Standardverhalten besteht darin, die Ausgabe am Ende einer Pipeline anzuzeigen. In PowerShell ist es in der Regel nicht erforderlich, das Cmdlet in Instanzen zu verwenden, in denen die Ausgabe standardmäßig angezeigt wird. Beispielsweise entspricht Get-Process | Write-OutputGet-Process. Oder es kann echo "Home directory: $HOME" geschrieben werden, "Home directory: $HOME".

Standardmäßig zählt Write-Output Objekte in einer Sammlung auf. Write-Output kann jedoch auch Auflistungen als ein einzelnes Objekt mithilfe des NoEnumerate-Parameters weitergeben.

Beispiele

Beispiel 1: Abrufen von Objekten und Ausgabe auf die Konsole

In diesem Beispiel werden die Ergebnisse des Cmdlets Get-Process in der variablen $P gespeichert. Das Cmdlet Write-Output zeigt die Prozessobjekte in $P der Konsole an.

$P = Get-Process
Write-Output $P

Beispiel 2: Übergeben der Ausgabe an ein anderes Cmdlet

Mit diesem Befehl wird die Zeichenfolge „test output“ über die Pipeline an das Get-Member-Cmdlet übergeben, das die Elemente der System.String-Klasse anzeigt, wodurch veranschaulicht wird, dass die Zeichenfolge über die Pipeline übergeben wurde.

Write-Output "test output" | Get-Member

Beispiel 3: Unterdrücken der Enumeration in der Ausgabe

Dieser Befehl fügt den NoEnumerate-Parameter hinzu, um eine Auflistung oder ein Array als ein einzelnes Objekt über die Pipeline zu verarbeiten.

Write-Output 1,2,3 | Measure-Object

Count    : 3
...

Write-Output 1,2,3 -NoEnumerate | Measure-Object

Count    : 1
...

Parameter

-InputObject

Gibt die Objekte an, die über die Pipeline gesendet werden sollen. Geben Sie eine Variable ein, die die Objekte enthält, oder geben Sie einen Befehl oder einen Ausdruck ein, mit dem die Objekte abgerufen werden.

Typ:PSObject[]
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-NoEnumerate

Standardmäßig listet das Write-Output-Cmdlet die Ausgabe immer auf. Der Parameter NoEnumerate unterdrückt das Standardverhalten und verhindert, dass Write-Output die Ausgabe aufzählt. Der NoEnumerate Parameter hat keine Auswirkung, wenn der Befehl in Klammern eingeschlossen wird, da die Aufzählung durch die Klammern erzwungen wird. Beispielsweise zählt (Write-Output 1,2,3 -NoEnumerate) das Array weiterhin auf.

Der NoEnumerate-Parameter ist nur in einer Pipeline nützlich. Der Versuch, die Auswirkungen von NoEnumerate in der Konsole zu sehen, ist problematisch, da PowerShell am Ende jeder Befehlszeile Out-Default hinzufügt, was zu einer Enumeration führt. Wenn Sie jedoch Write-Output -NoEnumerate an ein anderes Cmdlet weiterleiten, empfängt das nachgeschaltete Cmdlet das Aufzählungsobjekt, nicht die aufgezählten Elemente der Aufzählung.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

PSObject

Sie können Objekte an dieses Cmdlet weiterleiten.

Ausgaben

PSObject

Dieses Cmdlet gibt die Objekte zurück, die als Eingabe übermittelt werden.

Hinweise

PowerShell enthält die folgenden Aliase für Write-Output:

  • Alle Plattformen:

    • echo
  • Windows:

    • write