Out-String
Voert invoerobjecten uit als een tekenreeks.
Syntax
Out-String
[-Width <Int32>]
[-NoNewline]
[-InputObject <PSObject>]
[<CommonParameters>]
Out-String
[-Stream]
[-Width <Int32>]
[-InputObject <PSObject>]
[<CommonParameters>]
Description
De Out-String
cmdlet converteert invoerobjecten naar tekenreeksen. Standaard worden Out-String
de tekenreeksen verzameld en geretourneerd als één tekenreeks, maar u kunt de parameter Stream gebruiken om Out-String
één regel tegelijk te retourneren of een matrix met tekenreeksen te maken. Met deze cmdlet kunt u de uitvoer van tekenreeksen zoeken en bewerken, net zoals in traditionele shells wanneer objectmanipulatie minder handig is.
PowerShell voegt ook de OSS
functie toe die aanroept Out-String -Stream
als een verkorte manier om in een pijplijn te gebruiken Out-String
.
Voorbeelden
Voorbeeld 1: De huidige cultuur ophalen en de gegevens converteren naar tekenreeksen
In dit voorbeeld worden de landinstellingen voor de huidige gebruiker opgehaald en worden de objectgegevens geconverteerd naar tekenreeksen.
$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
Met de $C
variabele wordt een Selected.System.Globalization.CultureInfo-object opgeslagen. Het -object is het resultaat van het verzenden van Get-Culture
uitvoer van de pijplijn naar Select-Object
. De parameter Eigenschap maakt gebruik van een sterretje (*
) jokerteken om alle eigenschappen op te geven die zich in het object bevinden.
Out-String
gebruikt de parameter InputObject om het object CultureInfo op te geven dat is opgeslagen in de $C
variabele. De objecten in $C
worden geconverteerd naar een tekenreeks.
Notitie
Als u de Out-String
matrix wilt weergeven, slaat u de uitvoer op in een variabele en gebruikt u een matrixindex om de elementen weer te geven. Zie about_Arrays voor meer informatie over de matrixindex.
$str = Out-String -InputObject $C -Width 100
Voorbeeld 2: Werken met objecten
In dit voorbeeld ziet u het verschil tussen het werken met objecten en het werken met tekenreeksen. Met de opdracht wordt een alias weergegeven die de tekst gcm bevat, de alias voor Get-Command
.
Get-Alias | Out-String -Stream | Select-String -Pattern "gcm"
Alias gcm -> Get-Command
Get-Alias
haalt de System.Management.Automation.AliasInfo-objecten op, één voor elke alias, en verzendt de objecten naar beneden in de pijplijn. Out-String
gebruikt de parameter Stream om elk object te converteren naar een tekenreeks in plaats van alle objecten samen te voegen in één tekenreeks.
De System.String-objecten worden door de pijplijn verzonden en Select-String
gebruiken de parameter Pattern om overeenkomsten voor de tekst gcm te vinden.
Notitie
Als u de parameter Stream weglaat, worden met de opdracht alle aliassen weergegeven omdat Select-String
de tekst gcm wordt gevonden in de enkele tekenreeks die Out-String
wordt geretourneerd.
Voorbeeld 3: gebruik de parameter Width om afkapping te voorkomen.
Hoewel de meeste uitvoer van Out-String
wordt verpakt naar de volgende regel, zijn er scenario's waarin de uitvoer wordt afgekapt door het opmaaksysteem voordat deze wordt doorgegeven aan Out-String
. U kunt afkapping voorkomen met behulp van de parameter 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
Parameters
-InputObject
Hiermee geeft u de objecten die naar een tekenreeks moeten worden geschreven. Voer een variabele in die de objecten bevat of typ een opdracht of expressie waarmee de objecten worden opgehaald.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NoNewline
Hiermee verwijdert u alle nieuwe regels uit de uitvoer die is gegenereerd door de PowerShell-formatter. Nieuwe regels die deel uitmaken van de tekenreeksobjecten blijven behouden.
Deze parameter is geïntroduceerd in PowerShell 6.0.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Stream
Standaard wordt één tekenreeks uitgevoerd die is opgemaakt zoals u deze in de console zou zien, Out-String
inclusief eventuele lege kopteksten of afsluitende nieuwe regels. Met de parameter Stream kunt u Out-String
elke regel één voor één uitvoeren. De enige uitzondering hierop zijn tekenreeksen met meerdere regels. In dat geval Out-String
voert de tekenreeks nog steeds uit als één tekenreeks met meerdere regels.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Width
Hiermee geeft u het aantal tekens in elke regel van uitvoer. Eventuele extra tekens worden verpakt naar de volgende regel of afgekapt, afhankelijk van de gebruikte cmdlet voor de opmaak. De parameter Width is alleen van toepassing op objecten die worden opgemaakt. Als u deze parameter weglaat, wordt de breedte bepaald door de kenmerken van het hostprogramma. In terminalvensters (consolevensters) wordt de huidige vensterbreedte gebruikt als de standaardwaarde. PowerShell-consolevensters hebben bij de installatie standaard een breedte van 80 tekens.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Invoerwaarden
U kunt elk object doorspezen naar deze cmdlet.
Uitvoerwaarden
Deze cmdlet retourneert de tekenreeks die wordt gemaakt op basis van het invoerobject.
Notities
De cmdlets die de Out
werkwoord bevatten, maken geen objecten op. De Out
cmdlets verzenden objecten naar de formatter voor de opgegeven weergavebestemming.
PowerShell 7.2 heeft de mogelijkheid toegevoegd om te bepalen hoe ANSI-escapereeksen worden weergegeven. UITVOER met ANSI-versiering die wordt doorgegeven aan Out-String
, kan worden gewijzigd op basis van de instelling van de $PSStyle.OutputRendering
eigenschap. Zie about_ANSI_Terminals voor meer informatie.