Write-Output
Sendet die angegebenen Objekte an den nächsten Befehl in der Pipeline. Wenn der Befehl der letzte Befehl in der Pipeline ist, werden die Objekte in der Konsole angezeigt.
Syntax
Write-Output
[-InputObject] <PSObject[]>
[-NoEnumerate]
[<CommonParameters>]
Beschreibung
Das Write-Output
Cmdlet sendet das angegebene Objekt in der Pipeline an den nächsten Befehl.
Wenn der Befehl der letzte Befehl in der Pipeline ist, wird das Objekt in der Konsole angezeigt.
Write-Output
sendet Objekte in die primäre Pipeline, die auch als "Ausgabestream" oder "Erfolgspipeline" bezeichnet wird. Verwenden Sie Write-Error, um Fehlerobjekte über die Fehlerpipeline zu senden.
Dieses Cmdlet wird in der Regel in Skripts verwendet, um Zeichenfolgen und andere Objekte in der Konsole anzuzeigen. Einer der integrierten Aliase für Write-Output
ist echo
und ähnelt anderen Shells, die verwenden echo
, das Standardverhalten besteht darin, die Ausgabe am Ende einer Pipeline anzuzeigen. In PowerShell ist es im Allgemeinen nicht erforderlich, das Cmdlet in Instanzen zu verwenden, in denen die Ausgabe standardmäßig angezeigt wird. Get-Process | Write-Output
entspricht beispielsweise Get-Process
. Oder, echo "Home directory: $HOME"
kann geschrieben werden, "Home directory: $HOME"
.
Standardmäßig werden sammlungen aufgelistet, Write-Output
die für das Cmdlet bereitgestellt werden. Kann jedoch auch verwendet werden, Write-Output
um Auflistungen über die Pipeline als einzelnes Objekt mit dem NoEnumerate-Parameter zu übergeben.
Beispiele
Beispiel 1: Abrufen von Objekten und Schreiben in die Konsole
$P = Get-Process
Write-Output $P
Der erste Befehl ruft Prozesse ab, die auf dem Computer ausgeführt werden, und speichert sie in der $P
Variablen.
Der zweite und der dritte Befehl zeigen die Prozessobjekte in $P
auf der Konsole an.
Beispiel 2: Übergeben der Ausgabe an ein anderes Cmdlet
Write-Output "test output" | Get-Member
Dieser Befehl leitet die Zeichenfolge "test output" an das Get-Member
Cmdlet weiter, das die Member der System.String-Klasse anzeigt, wodurch veranschaulicht wird, dass die Zeichenfolge entlang der Pipeline übergeben wurde.
Beispiel 3: Unterdrücken der Enumeration in der Ausgabe
Write-Output 1,2,3 | Measure-Object
Count : 3
...
Write-Output 1,2,3 -NoEnumerate | Measure-Object
Count : 1
...
Dieser Befehl fügt den Parameter NoEnumerate hinzu, um eine Auflistung oder ein Array als einzelnes Objekt über die Pipeline zu behandeln.
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.
Type: | PSObject[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NoEnumerate
Standardmäßig listet das Write-Output
Cmdlet immer seine Ausgabe auf. Der NoEnumerate-Parameter unterdrückt das Standardverhalten und verhindert, dass Write-Output
die Ausgabe aufgezählt wird. Der NoEnumerate-Parameter hat keine Auswirkung, wenn der Befehl in Klammern umschlossen wird, da die Klammern die Enumeration erzwingen. Zählt beispielsweise (Write-Output 1,2,3)
weiterhin das Array auf.
Hinweis
Dieser Schalter funktioniert nur ordnungsgemäß mit PowerShell Core 6.2 und höher. In älteren Versionen von PowerShell Core wird die Sammlung auch bei Verwendung dieses Schalters weiterhin aufgezählt.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
Sie können -Objekte an übergeben Write-Output
.
Ausgaben
Write-Output
gibt die Objekte zurück, die als Eingabe übermittelt werden.