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-Output
Get-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
Sie können Objekte an dieses Cmdlet weiterleiten.
Ausgaben
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