Write-Output
Schreibt die angegebenen Objekte in die Pipeline. Wenn Write-Output
es sich um den letzten Befehl in der Pipeline handelt, werden die Objekte in der Konsole angezeigt.
Syntax
Write-Output
[-InputObject] <PSObject[]>
[-NoEnumerate]
[<CommonParameters>]
Beschreibung
Schreibt die angegebenen Objekte in die Pipeline. Wenn Write-Output
es sich um den letzten Befehl in der Pipeline handelt, werden die Objekte in der Konsole angezeigt.
Write-Output
sendet Objekte an die primäre Pipeline, auch bekannt als "Ausgabedatenstrom" oder "Erfolgspipeline". Verwenden Sie die Verwendung Write-Error
, um Fehlerobjekte an 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 ist Write-Output
echo
und ähnlich wie andere Shells, die verwendet werden 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 kann echo "Home directory: $HOME"
geschrieben werden, "Home directory: $HOME"
.
Standardmäßig Write-Output
werden Auflistungsobjekte aufgezählt. Kann jedoch auch verwendet werden, Write-Output
um Sammlungen als einzelnes Objekt mit dem Parameter NoEnumerate an die Pipeline zu übergeben.
Beispiele
Beispiel 1: Abrufen von Objekten und Schreiben in die Konsole
In diesem Beispiel werden die Ergebnisse des Get-Process
Cmdlets in der $P
Variablen gespeichert. Das Write-Output
Cmdlet 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 "Testausgabe" an das Get-Member
Cmdlet weitergeleitet, das die Member der System.String-Klasse anzeigt und zeigt, dass die Zeichenfolge entlang der Pipeline übergeben wurde.
Write-Output "test output" | Get-Member
Beispiel 3: Unterdrücken der Enumeration in der Ausgabe
Dieser Befehl fügt den Parameter NoEnumerate hinzu, um eine Auflistung oder ein Array als einzelnes Objekt über die Pipeline zu behandeln.
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.
Type: | PSObject[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NoEnumerate
Standardmäßig werden die Ausgabe des Write-Output
Cmdlets immer aufgezählt. Der Parameter NoEnumerate unterdrückt das Standardverhalten und verhindert Write-Output
, dass die Ausgabe aufgezählt wird. Der Parameter NoEnumerate hat keine Auswirkung, wenn der Befehl in Klammern umgebrochen wird, da die Klammern die Enumeration erzwingen. Beispielsweise (Write-Output 1,2,3)
werden die Arrays immer noch aufgezählt.
Der Parameter NoEnumerate 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 hinzufügt Out-Default
, was zur Aufzählung führt. Wenn Sie jedoch an ein anderes Cmdlet weitergeleitet Write-Output -NoEnumerate
werden, empfängt das nachgeschaltete Cmdlet das Auflistungsobjekt, nicht die aufgezählten Elemente der Auflistung.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
Sie können Objekte an Write-Output
.
Ausgaben
Write-Output
gibt die Objekte zurück, die als Eingabe übermittelt werden.