Write-Output

Hiermee schrijft u de opgegeven objecten naar de pijplijn.

Syntax

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

Description

Hiermee schrijft u de opgegeven objecten naar de pijplijn. Als Write-Output dit de laatste opdracht in de pijplijn is, worden de objecten weergegeven in de console.

Write-Output verzendt objecten naar de primaire pijplijn, ook wel bekend als de successtroom. Als u foutobjecten naar de foutstroom wilt verzenden, gebruikt u Write-Error.

Deze cmdlet wordt meestal gebruikt in scripts om tekenreeksen en andere objecten op de console weer te geven. Een van de ingebouwde aliassen voor Write-Output is echo en lijkt op andere shells die gebruikmaken van echo. Het standaardgedrag is om de uitvoer aan het einde van een pijplijn weer te geven. In PowerShell is het over het algemeen niet nodig om de cmdlet te gebruiken in gevallen waarin de uitvoer standaard wordt weergegeven. Get-Process | Write-Output is bijvoorbeeld gelijk aan Get-Process. Of, echo "Home directory: $HOME" kan worden geschreven, "Home directory: $HOME".

Write-Output Standaard worden objecten in een verzameling opgesomd. Write-Output U kunt verzamelingen echter ook doorgeven als één object met de parameter NoEnumerate.

Voorbeelden

Voorbeeld 1: Objecten ophalen en naar de console schrijven

In dit voorbeeld worden de resultaten van de Get-Process cmdlet opgeslagen in de $P variabele. De Write-Output cmdlet geeft de procesobjecten weer in $P de console.

$P = Get-Process
Write-Output $P

Voorbeeld 2: Uitvoer doorgeven aan een andere cmdlet

Met deze opdracht wordt de tekenreeks 'testuitvoer' doorgegeven aan de Get-Member cmdlet, waarin de leden van de klasse System.String worden weergegeven, waarmee wordt aangegeven dat de tekenreeks is doorgegeven aan de pijplijn.

Write-Output "test output" | Get-Member

Voorbeeld 3: Opsomming onderdrukken in uitvoer

Met deze opdracht wordt de parameter NoEnumerate toegevoegd om een verzameling of matrix als één object via de pijplijn te behandelen.

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

Count    : 3
...

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

Count    : 1
...

Parameters

-InputObject

Hiermee geeft u de objecten op die de pijplijn moeten worden verzonden. Voer een variabele in die de objecten bevat of typ een opdracht of expressie waarmee de objecten worden opgehaald.

Type:PSObject[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NoEnumerate

De cmdlet inventariseert standaard Write-Output altijd de uitvoer. De parameter NoEnumerate onderdrukt het standaardgedrag en voorkomt Write-Output dat uitvoer wordt opgesomd. De parameter NoEnumerate heeft geen effect als de opdracht tussen haakjes is verpakt, omdat de haakjes opsomming afdwingen. De matrix wordt bijvoorbeeld (Write-Output 1,2,3) nog steeds opgesomd.

De parameter NoEnumerate is alleen nuttig in een pijplijn. Het is problematisch om de effecten van NoEnumerate in de console te zien, omdat PowerShell wordt toegevoegd Out-Default aan het einde van elke opdrachtregel, wat resulteert in opsomming. Maar als u naar een andere cmdlet sluist Write-Output -NoEnumerate , ontvangt de downstream-cmdlet het verzamelingsobject, niet de geïnventareerde items van de verzameling.

Belangrijk

Er is een probleem met deze switch in Windows PowerShell die is opgelost in PowerShell 6.2 en hoger. Wanneer u NoEnumerate gebruikt en expliciet de parameter InputObject gebruikt, wordt de opdracht nog steeds opgesomd. Als u dit wilt omzeilen, geeft u het argument(en) inputObject positioneel door.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Invoerwaarden

PSObject

U kunt objecten doorsluisen naar deze cmdlet.

Uitvoerwaarden

PSObject

Met deze cmdlet worden de objecten geretourneerd die als invoer worden verzonden.

Notities

Windows PowerShell bevat de volgende aliassen voor Write-Output:

  • echo
  • write