Out-String
Matar ut indataobjekt som en sträng.
Syntax
Out-String
[-Width <Int32>]
[-NoNewline]
[-InputObject <PSObject>]
[<CommonParameters>]
Out-String
[-Stream]
[-Width <Int32>]
[-InputObject <PSObject>]
[<CommonParameters>]
Description
Cmdleten Out-String
konverterar indataobjekt till strängar. Som standard Out-String
ackumuleras strängarna och returnerar dem som en enda sträng, men du kan använda parametern Stream för att returnera Out-String
en rad i taget eller skapa en matris med strängar. Med den här cmdleten kan du söka efter och ändra strängutdata på samma sätt som i traditionella gränssnitt när objektmanipulering är mindre praktiskt.
PowerShell lägger också till funktionen OSS
som anropar Out-String -Stream
som ett kortvägs sätt att använda Out-String
i en pipeline.
Exempel
Exempel 1: Hämta den aktuella kulturen och konvertera data till strängar
Det här exemplet hämtar de nationella inställningarna för den aktuella användaren och konverterar objektdata till strängar.
$C = Get-Culture | Select-Object -Property *
Out-String -InputObject $C -Width 100
Parent : en
LCID : 1033
KeyboardLayoutId : 1033
Name : en-US
IetfLanguageTag : en-US
DisplayName : English (United States)
NativeName : English (United States)
EnglishName : English (United States)
TwoLetterISOLanguageName : en
ThreeLetterISOLanguageName : eng
ThreeLetterWindowsLanguageName : ENU
CompareInfo : CompareInfo - en-US
TextInfo : TextInfo - en-US
IsNeutralCulture : False
CultureTypes : SpecificCultures, InstalledWin32Cultures, FrameworkCultures
NumberFormat : System.Globalization.NumberFormatInfo
DateTimeFormat : System.Globalization.DateTimeFormatInfo
Calendar : System.Globalization.GregorianCalendar
OptionalCalendars : {System.Globalization.GregorianCalendar,
System.Globalization.GregorianCalendar}
UseUserOverride : True
IsReadOnly : False
Variabeln $C
lagrar ett Selected.System.Globalization.CultureInfo-objekt . Objektet är resultatet av Get-Culture
att skicka utdata från pipelinen till Select-Object
. Parametern Egenskap använder en asterisk (*
) jokertecken för att ange att alla egenskaper finns i objektet.
Out-String
använder parametern InputObject för att ange det CultureInfo-objekt som lagras i variabeln $C
. Objekten i $C
konverteras till en sträng.
Anteckning
Om du vill visa matrisen Out-String
lagrar du utdata till en variabel och använder ett matrisindex för att visa elementen. Mer information om matrisindexet finns i about_Arrays.
$str = Out-String -InputObject $C -Width 100
Exempel 2: Arbeta med objekt
Det här exemplet visar skillnaden mellan att arbeta med objekt och att arbeta med strängar. Kommandot visar ett alias som innehåller texten gcm, aliaset för Get-Command
.
Get-Alias | Out-String -Stream | Select-String -Pattern "gcm"
Alias gcm -> Get-Command
Get-Alias
hämtar System.Management.Automation.AliasInfo-objekten , ett för varje alias, och skickar objekten nedåt i pipelinen. Out-String
använder parametern Stream för att konvertera varje objekt till en sträng i stället för att sammanfoga alla objekt till en enda sträng.
System.String-objekten skickas nedåt i pipelinen och Select-String
använder parametern Pattern för att hitta matchningar för texten gcm.
Anteckning
Om du utelämnar parametern Stream visar kommandot alla alias eftersom Select-String
hittar texten gcm i den enda sträng som Out-String
returneras.
Exempel 3: Använd parametern Width för att förhindra trunkering.
Även om de flesta utdata från Out-String
omsluts till nästa rad finns det scenarier där utdata trunkeras av formateringssystemet innan de skickas till Out-String
. Du kan undvika trunkering med hjälp av parametern Width .
PS> @{TestKey = ('x' * 200)} | Out-String
Name Value
---- -----
TestKey xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
PS> @{TestKey = ('x' * 200)} | Out-String -Width 250
Name Value
---- -----
TestKey xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Parametrar
-InputObject
Anger vilka objekt som ska skrivas till en sträng. Ange en variabel som innehåller objekten eller skriv ett kommando eller uttryck som hämtar objekten.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NoNewline
Tar bort alla nya ledningar från utdata som genereras av PowerShell-formaterare. Nya ledningar som ingår i strängobjekten bevaras.
Den här parametern introducerades i PowerShell 6.0.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Stream
Som standard Out-String
matar ut en enda sträng formaterad som du skulle se den i konsolen, inklusive eventuella tomma rubriker eller avslutande nya raderna. Parametern Stream gör det möjligt Out-String
att mata ut varje rad en i taget. Det enda undantaget till detta är flerradssträngar. I så fall Out-String
kommer fortfarande att mata ut strängen som en enda sträng med flera ledningar.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Width
Anger antalet tecken i varje rad med utdata. Eventuella ytterligare tecken omsluts till nästa rad eller trunkeras beroende på vilken formaterings-cmdlet som används. Parametern Width gäller endast för objekt som formateras. Om du utelämnar den här parametern bestäms bredden av värdprogrammets egenskaper. I terminalfönster (konsol) används den aktuella fönsterbredden som standardvärde. PowerShell-konsolfönster har som standard en bredd på 80 tecken vid installationen.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Indata
Du kan skicka valfritt objekt till den här cmdleten.
Utdata
Den här cmdleten returnerar strängen som den skapar från indataobjektet.
Kommentarer
De cmdletar som innehåller verbet Out
formaterar inte objekt. Cmdletarna Out
skickar objekt till formatatorn för det angivna visningsmålet.
PowerShell 7.2 har lagt till möjligheten att styra hur ANSI-escape-sekvenser renderas. ANSI-dekorerade utdata som skickas till Out-String
kan ändras baserat på inställningen för $PSStyle.OutputRendering
egenskapen. Mer information finns i about_ANSI_Terminals.