Write-Output
Hiermee schrijft u de opgegeven objecten naar de pijplijn.
Syntaxis
Write-Output
[-InputObject] <PSObject[]>
[-NoEnumerate]
[<CommonParameters>]
Description
Hiermee schrijft u de opgegeven objecten naar de pijplijn. Als Write-Output
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. Gebruik Write-Error
om foutobjecten naar de foutstroom te verzenden.
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 vergelijkbaar met 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
. Met andere woorden, echo "Home directory: $HOME"
kan worden geschreven als "Home directory: $HOME"
.
Standaard somt Write-Output
de objecten in een verzameling op.
Write-Output
kan echter ook verzamelingen doorgeven aan de pijplijn 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 cmdlet Get-Process
opgeslagen in de variabele $P
. Met de cmdlet Write-Output
worden de procesobjecten in $P
naar de console weergegeven.
$P = Get-Process
Write-Output $P
Voorbeeld 2: Uitvoer doorgeven aan een andere cmdlet
Deze opdracht voert de tekenreeks 'testuitvoer' door naar de Get-Member
-cmdlet, die de leden van de System.String-klasse weergeeft en daarmee laat zien dat de tekenreeks is doorgegeven aan de pipeline.
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 naar de pijplijn moeten worden doorgegeven. 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 |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-NoEnumerate
De Write-Output
cmdlet inventariseert standaard altijd de uitvoer. De parameter NoEnumerate onderdrukt het standaardgedrag en voorkomt dat Write-Output
uitvoer opsommen. De parameter NoEnumerate heeft geen effect als de opdracht tussen haakjes is verpakt, omdat de haakjes opsomming afdwingen.
(Write-Output 1,2,3 -NoEnumerate)
bijvoorbeeld nog steeds de reeks opsommen.
De parameter NoEnumerate is alleen nuttig in een pijplijn. Het is problematisch om de effecten van NoEnumerate- in de console te zien, omdat PowerShell Out-Default
toevoegt aan het einde van elke opdrachtregel, wat resulteert in opsomming. Maar als u Write-Output -NoEnumerate
naar een andere cmdlet sluist, ontvangt de downstream-cmdlet het verzamelingsobject, niet de geïnventariseerd 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. U kunt dit omzeilen door de InputObject- argument(en) positioneel door te geven.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
Invoerwaarden
U kunt objecten doorsluisen naar deze cmdlet.
Uitvoerwaarden
Met deze cmdlet worden de objecten geretourneerd die als invoer worden verzonden.
Notities
Windows PowerShell bevat de volgende aliassen voor Write-Output
:
echo
write