Out-String
Voert invoerobjecten uit als een tekenreeks.
Syntaxis
NoNewLineFormatting (Standaard)
Out-String
[-Width <Int32>]
[-NoNewline]
[-InputObject <PSObject>]
[<CommonParameters>]
StreamFormatting
Out-String
[-Stream]
[-Width <Int32>]
[-InputObject <PSObject>]
[<CommonParameters>]
Description
De cmdlet Out-String converteert invoerobjecten naar tekenreeksen. Standaard verzamelt Out-String de tekenreeksen en retourneert deze als één tekenreeks, maar u kunt de parameter Stream gebruiken om Out-String om éé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 Out-String -Stream aanroept als een verkorte manier om Out-String in een pijplijn te gebruiken.
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 variabele $C slaat een Selected.System.Globalization.CultureInfo-object op. Het object is het resultaat van Get-Culture uitvoer naar Select-Objectverzenden. De eigenschap parameter maakt gebruik van een sterretje (*) om alle eigenschappen op te geven zijn opgenomen in het object.
Out-String gebruikt de parameter InputObject om het object CultureInfo op te geven dat is opgeslagen in de variabele $C. De objecten in $C worden geconverteerd naar een tekenreeks.
Opmerking
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_Arraysvoor 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 bevat gcm, 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 omlaag 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 naar de pijplijn verzonden en Select-String gebruikt de parameter Pattern om overeenkomsten te vinden voor de tekst gcm-.
Opmerking
Als u de parameter Stream weglaat, worden met de opdracht alle aliassen weergegeven, omdat Select-String de tekst gcm vindt in de enkele tekenreeks die Out-String retourneert.
Voorbeeld 3: de parameter Breedte gebruiken 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 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.
Parametereigenschappen
| Type: | PSObject |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | True |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | 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.
Parametereigenschappen
| Type: | SwitchParameter |
| Default value: | False |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
NoNewLineFormatting
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-Stream
Standaard wordt Out-String één tekenreeks uitgevoerd die is opgemaakt zoals u deze ziet in de console, inclusief lege headers of volg nieuwe regels. Met de parameter Stream kan Out-String elke regel één voor één uitvoeren. De enige uitzondering hierop zijn tekenreeksen met meerdere regels. In dat geval voert Out-String de tekenreeks nog steeds uit als één tekenreeks met meerdere regels.
Parametereigenschappen
| Type: | SwitchParameter |
| Default value: | False |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
StreamFormatting
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | 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.
Parametereigenschappen
| Type: | Int32 |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
CommonParameters
Deze cmdlet ondersteunt de algemene parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction en -WarningVariable. Zie about_CommonParametersvoor meer informatie.
Invoerwaarden
PSObject
U kunt elk object doorsluisen naar deze cmdlet.
Uitvoerwaarden
String
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 aan Out-String kan worden gewijzigd op basis van de instelling van de eigenschap $PSStyle.OutputRendering. Zie about_ANSI_Terminalsvoor meer informatie.