Write-Output
Skriver de angivna objekten till pipelinen.
Syntax
Write-Output
[-InputObject] <PSObject[]>
[-NoEnumerate]
[<CommonParameters>]
Description
Skriver de angivna objekten till pipelinen. Om Write-Output
är det sista kommandot i pipelinen visas objekten i konsolen.
Write-Output
skickar objekt till den primära pipelinen, även kallat lyckad dataström. Om du vill skicka felobjekt till felströmmen använder du Write-Error
.
Den här cmdleten används vanligtvis i skript för att visa strängar och andra objekt i konsolen. Ett av de inbyggda aliasen för Write-Output
är echo
och liknar andra gränssnitt som använder echo
. Standardbeteendet är att visa utdata i slutet av en pipeline. I PowerShell är det vanligtvis inte nödvändigt att använda cmdleten i instanser där utdata visas som standard. Get-Process | Write-Output
motsvarar till exempel Get-Process
. Eller kan echo "Home directory: $HOME"
skrivas, "Home directory: $HOME"
.
Som standard Write-Output
räknas objekt upp i en samling. Men Write-Output
kan också skicka samlingar nedåt i pipelinen som ett enskilt objekt med parametern NoEnumerate .
Exempel
Exempel 1: Hämta objekt och skriv dem till konsolen
I det här exemplet lagras resultatet av cmdleten Get-Process
i variabeln $P
. Cmdleten Write-Output
visar processobjekten i $P
konsolen.
$P = Get-Process
Write-Output $P
Exempel 2: Skicka utdata till en annan cmdlet
Det här kommandot skickar strängen "testutdata" till cmdleten Get-Member
, som visar medlemmarna i klassen System.String , vilket visar att strängen skickades längs pipelinen.
Write-Output "test output" | Get-Member
Exempel 3: Utelämna uppräkning i utdata
Det här kommandot lägger till parametern NoEnumerate för att behandla en samling eller matris som ett enda objekt via pipelinen.
Write-Output 1,2,3 | Measure-Object
Count : 3
...
Write-Output 1,2,3 -NoEnumerate | Measure-Object
Count : 1
...
Parametrar
-InputObject
Anger vilka objekt som ska skickas nedåt i pipelinen. Ange en variabel som innehåller objekten eller skriv ett kommando eller uttryck som hämtar objekten.
Typ: | PSObject[] |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-NoEnumerate
Som standard räknar cmdleten Write-Output
alltid upp sina utdata. Parametern NoEnumerate undertrycker standardbeteendet och förhindrar att utdata räknas Write-Output
upp. Parametern NoEnumerate har ingen effekt om kommandot är omslutet i parenteser, eftersom parenteserna framtvingar uppräkning. Till exempel räknas (Write-Output 1,2,3)
matrisen fortfarande upp.
Parametern NoEnumerate är bara användbar i en pipeline. Att försöka se effekterna av NoEnumerate i konsolen är problematiskt eftersom PowerShell lägger Out-Default
till i slutet av varje kommandorad, vilket resulterar i uppräkning. Men om du rör Write-Output -NoEnumerate
till en annan cmdlet tar den underordnade cmdleten emot samlingsobjektet, inte samlingsobjektens uppräknade objekt.
Viktigt!
Det finns ett problem med den här växeln i Windows PowerShell som är fast i PowerShell 6.2 och senare. När du använder NoEnumerate och uttryckligen använder parametern InputObject räknas kommandot fortfarande upp. Om du vill kringgå detta skickar du InputObject-argumenten positionligt.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
Indata
Du kan skicka objekt till den här cmdleten.
Utdata
Den här cmdleten returnerar de objekt som skickas som indata.
Kommentarer
Windows PowerShell innehåller följande alias för Write-Output
:
echo
write