Dela via


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.

Type:PSObject[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

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

Indata

PSObject

Du kan skicka objekt till den här cmdleten.

Utdata

PSObject

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