Out-String
Voert invoerobjecten uit als een tekenreeks.
Syntaxis
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. De tekenreeksen worden standaard Out-String
verzameld en geretourneerd als één tekenreeks, maar u kunt de Stream-parameter gebruiken om Out-String
één regel tegelijk te retourneren of een matrix met tekenreeksen te maken. Met deze cmdlet kunt u tekenreeksuitvoer zoeken en bewerken zoals in traditionele shells wanneer objectmanipulatie minder handig is.
PowerShell voegt ook de OSS
functie toe die wordt aangeroepen 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
De $C
variabele slaat een Selected.System.Globalization.CultureInfo-object op. Het object is het resultaat van het verzenden van Get-Culture
uitvoer naar de pijplijn.Select-Object
De parameter Eigenschap maakt gebruik van een sterretje (*
) jokerteken om alle eigenschappen in het object op te geven.
Out-String
gebruikt de parameter InputObject om het CultureInfo-object 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 naar 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 objecten System.Management.Automation.AliasInfo op, één voor elke alias en verzendt de objecten omlaag in de pijplijn. Out-String
gebruikt de Stream-parameter om elk object te converteren naar een tekenreeks in plaats van alle objecten samen te voegen in één tekenreeks.
De System.String-objecten worden naar de pijplijn verzonden en Select-String
gebruikt de parameter Pattern om overeenkomsten voor de tekst gcm te vinden.
Notitie
Als u de Stream-parameter 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: de parameter Breedte gebruiken om afkapping te voorkomen
Hoewel de meeste uitvoer wordt Out-String
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 afkappen 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 |
Vereist: | False |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-NoNewline
Hiermee verwijdert u alle nieuwe regels uit de uitvoer die is gegenereerd door de PowerShell-indeling. Nieuwe lijnen die deel uitmaken van de tekenreeksobjecten, blijven behouden.
Deze parameter is geïntroduceerd in PowerShell 6.0.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Stream
Out-String
Standaard wordt één tekenreeks uitgevoerd die is opgemaakt zoals u deze zou zien in de console, inclusief lege headers of nieuwe regels. Met de Stream-parameter kunt Out-String
u elke regel één voor één uitvoeren. De enige uitzondering hierop zijn tekenreeksen met meerdere regels. In dat geval Out-String
wordt de tekenreeks nog steeds uitgevoerd als één tekenreeks met meerdere regels.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Width
Hiermee geeft u het aantal tekens op elke regel van uitvoer. Eventuele extra tekens worden verpakt naar de volgende regel of afgekapt, afhankelijk van de gebruikte formatter-cmdlet. 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 (console) wordt de huidige breedte van het venster gebruikt als de standaardwaarde. PowerShell-consolevensters zijn standaard ingesteld op een breedte van 80 tekens tijdens de installatie.
Type: | Int32 |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
Invoerwaarden
U kunt elk object doorsluisen naar deze cmdlet.
Uitvoerwaarden
Deze cmdlet retourneert de tekenreeks die wordt gemaakt op basis van het invoerobject.
Notities
De cmdlets die het 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. AnSI-ingerichte uitvoer die wordt doorgegeven Out-String
, kan worden gewijzigd op basis van de instelling van de $PSStyle.OutputRendering
eigenschap. Zie about_ANSI_Terminals voor meer informatie.