Freigeben über


Out-String

Gibt Eingabeobjekte als Zeichenfolge aus.

Syntax

Out-String
   [-Width <Int32>]
   [-NoNewline]
   [-InputObject <PSObject>]
   [<CommonParameters>]
Out-String
   [-Stream]
   [-Width <Int32>]
   [-InputObject <PSObject>]
   [<CommonParameters>]

Beschreibung

Das Out-String Cmdlet konvertiert Eingabeobjekte in Zeichenfolgen. Standardmäßig Out-String werden die Zeichenfolgen akkumuliert und als einzelne Zeichenfolge zurückgegeben. Sie können jedoch den parameter Stream verwenden, um Out-String eine Zeile gleichzeitig zurückzugeben oder ein Array von Zeichenfolgen zu erstellen. Mit diesem Cmdlet können Sie die Zeichenfolgenausgabe so wie in herkömmlichen Shells durchsuchen und bearbeiten, wenn die Objektbearbeitung ungeeignet ist.

PowerShell fügt auch die Funktion hinzu, die OSS als Kurzform zur Verwendung Out-String in einer Pipeline aufruftOut-String -Stream.

Beispiele

Beispiel 1: Abrufen der aktuellen Kultur und Konvertieren der Daten in Zeichenfolgen

In diesem Beispiel werden die regionalen Einstellungen für den aktuellen Benutzer abgerufen und die Objektdaten in Zeichenfolgen konvertiert.

$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

Die $C Variable speichert ein Selected.System.Globalization.CultureInfo-Objekt . Das -Objekt ist das Ergebnis des Sendens der Get-Culture Ausgabe an die Pipeline Select-Object. Der Property-Parameter verwendet ein Sternchen (*) platzhalter, um anzugeben, dass alle Eigenschaften im -Objekt enthalten sind.

Out-Stringverwendet den InputObject-Parameter, um das in der $C Variablen gespeicherte CultureInfo-Objekt anzugeben. Die Objekte in $C werden in eine Zeichenfolge konvertiert.

Hinweis

Um das Out-String Array anzuzeigen, speichern Sie die Ausgabe in einer Variablen, und verwenden Sie einen Arrayindex, um die Elemente anzuzeigen. Weitere Informationen zum Arrayindex finden Sie unter about_Arrays.

$str = Out-String -InputObject $C -Width 100

Beispiel 2: Arbeiten mit Objekten

Dieses Beispiel veranschaulicht den Unterschied zwischen dem Arbeiten mit Objekten und dem Arbeiten mit Zeichenfolgen. Der Befehl zeigt einen Alias an, der den Text gcm, den Alias für Get-Commandenthält.

Get-Alias | Out-String -Stream | Select-String -Pattern "gcm"

Alias           gcm -> Get-Command

Get-Alias ruft die System.Management.Automation.AliasInfo-Objekte ab, eines für jeden Alias, und sendet die Objekte in der Pipeline. Out-Stringverwendet den parameter Stream, um jedes Objekt in eine Zeichenfolge zu konvertieren, anstatt alle Objekte in eine einzelne Zeichenfolge zu verketten. Die System.String-Objekte werden über die Pipeline gesendet und Select-String verwenden den Pattern-Parameter , um Übereinstimmungen für den Text gcm zu finden.

Hinweis

Wenn Sie den parameter Stream weglassen, zeigt der Befehl alle Aliase an, da Select-String der Text gcm in der einzelnen zurückgegebenen Out-String Zeichenfolge gefunden wird.

Beispiel 3: Verwenden Sie den Width-Parameter, um eine Abschneidung zu verhindern.

Während die meiste Ausgabe von Out-String in die nächste Zeile umschlossen wird, gibt es Szenarien, in denen die Ausgabe vom Formatierungssystem abgeschnitten wird, bevor sie an Out-Stringübergeben wird. Sie können das Abschneiden mit dem Width-Parameter vermeiden.

PS> @{TestKey = ('x' * 200)} | Out-String
Name                           Value
----                           -----
TestKey                        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...

PS> @{TestKey = ('x' * 200)} | Out-String -Width 250

Name                           Value
----                           -----
TestKey                        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Parameter

-InputObject

Gibt die Objekte an, die in eine Zeichenfolge geschrieben werden. Geben Sie eine Variable ein, die die Objekte enthält, oder geben Sie einen Befehl oder einen Ausdruck ein, mit dem die Objekte abgerufen werden.

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

-NoNewline

Entfernt alle Neulinien aus der Ausgabe, die vom PowerShell-Formatierer generiert wurde. Neue Linien, die Teil der Zeichenfolgenobjekte sind, werden beibehalten.

Dieser Parameter wurde in PowerShell 6.0 eingeführt.

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

-Stream

Standardmäßig gibt eine einzelne Zeichenfolge aus, die so formatiert ist, Out-String wie sie in der Konsole angezeigt wird, einschließlich aller leeren Header oder nachfolgenden Zeilenzeilen. Mit dem parameter Stream kann Out-String jede Zeile einzeln ausgegeben werden. Die einzige Ausnahme sind mehrlineare Zeichenfolgen. In diesem Fall Out-String gibt die Zeichenfolge weiterhin als eine einzelne, mehrzeile Zeichenfolge aus.

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

-Width

Gibt die Anzahl der Zeichen in jeder Zeile der Ausgabe an. Alle zusätzlichen Zeichen werden je nach verwendetem Formatter-Cmdlet in die nächste Zeile umschlossen oder abgeschnitten. Der Width-Parameter gilt nur für Objekte, die formatiert werden. Wenn Sie diesen Parameter weglassen, wird die Breite durch die Merkmale des Hostprogramms bestimmt. In Terminalfenstern (Konsolenfenster) wird die aktuelle Fensterbreite als Standardwert verwendet. PowerShell-Konsolenfenster haben bei der Installation standardmäßig eine Breite von 80 Zeichen.

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

Eingaben

PSObject

Sie können jedes Objekt an dieses Cmdlet weiterleiten.

Ausgaben

String

Dieses Cmdlet gibt die Zeichenfolge zurück, die es aus dem Eingabeobjekt erstellt.

Hinweise

Die Cmdlets, die das Out Verb enthalten, formatieren keine Objekte. Die Out Cmdlets senden Objekte an den Formatierer für das angegebene Anzeigeziel.

PowerShell 7.2 hat die Möglichkeit hinzugefügt, zu steuern, wie ANSI-Escapesequenzen gerendert werden. AnSI-dekorierte Ausgabe, die an Out-String übergeben wird, kann basierend auf der Einstellung der $PSStyle.OutputRendering -Eigenschaft geändert werden. Weitere Informationen finden Sie unter about_ANSI_Terminals.