Freigeben über


Out-String

Gibt Eingabeobjekte als Zeichenfolge aus.

Syntax

NoNewLineFormatting (Standardwert)

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

StreamFormatting

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

Beschreibung

Das Cmdlet Out-String konvertiert Eingabeobjekte in Zeichenfolgen. Standardmäßig sammelt Out-String die Zeichenfolgen und gibt sie als einzelne Zeichenfolge zurück, Sie können jedoch den parameter Stream verwenden, um Out-String zu leiten, um jeweils eine Zeile zurückzugeben oder ein Array von Zeichenfolgen zu erstellen. Mit diesem Cmdlet können Sie die Zeichenfolgenausgabe wie in herkömmlichen Shells durchsuchen und bearbeiten, wenn die Objektmanipulation weniger bequem ist.

PowerShell fügt außerdem die oss-Funktion hinzu, die Out-String -Stream als Kurzform aufruft, um Out-String in einer Pipeline zu verwenden.

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 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 Get-Culture Senden der Ausgabe an die Pipeline an Select-Object. Der parameter Property verwendet ein Sternchen (*) zum Angeben aller Eigenschaften im Objekt.

Out-String verwendet den Parameter InputObject, um das in der Variable gespeicherte $C-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

In diesem Beispiel wird der Unterschied zwischen dem Arbeiten mit Objekten und dem Arbeiten mit Zeichenfolgen veranschaulicht. 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 an die Pipeline. Out-String verwendet 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 an die Pipeline gesendet, und Select-String verwendet den Parameter Pattern, um Übereinstimmungen für den Text gcmzu finden.

Hinweis

Wenn Sie den Parameter Stream weglassen, zeigt der Befehl alle Aliase an, da Select-String den Text gcm- in der einzelnen Zeichenfolge findet, die Out-String zurückgibt.

Beispiel 3: Verwenden des Parameters "Width" zum Verhindern des Abschneidens

Während die meisten Ausgaben von Out-String in die nächste Zeile eingeschlossen werden, gibt es Szenarien, in denen die Ausgabe vom Formatierungssystem abgeschnitten wird, bevor sie an Out-Stringübergeben wird. Sie können das Abschneiden mithilfe des parameters Width 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 sollen. Geben Sie eine Variable ein, die die Objekte enthält, oder geben Sie einen Befehl oder Ausdruck ein, der die Objekte ermittelt.

Parametereigenschaften

Typ:PSObject
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-NoNewline

Entfernt alle Neulinien aus der Ausgabe, die vom PowerShell-Formatierer generiert wird. Newlines, die Teil der Zeichenfolgenobjekte sind, werden beibehalten.

Dieser Parameter wurde in PowerShell 6.0 eingeführt.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

NoNewLineFormatting
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Stream

Standardmäßig gibt Out-String eine einzelne Zeichenfolge aus, die so formatiert ist, wie sie in der Konsole angezeigt wird, einschließlich leerer Kopfzeilen oder nachfolgender Newlines. Mit dem Parameter Stream können Out-String jede Zeile einzeln ausgeben. Die einzige Ausnahme hierfür sind mehrteilige Zeichenfolgen. In diesem Fall gibt Out-String die Zeichenfolge weiterhin als einzelne mehrteilige Zeichenfolge aus.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

StreamFormatting
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Width

Gibt die Anzahl der Zeichen in jeder Ausgabezeile an. Alle zusätzlichen Zeichen werden abhängig vom verwendeten Formatierer-Cmdlet in die nächste Zeile umbrochen oder abgeschnitten. Der parameter Width 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 werden standardmäßig auf eine Breite von 80 Zeichen bei der Installation festgelegt.

Parametereigenschaften

Typ:Int32
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

CommonParameters

Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.

Eingaben

PSObject

Sie können jedes Objekt an dieses Cmdlet weiterleiten.

Ausgaben

String

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

Hinweise

Die Cmdlets, die das verb Out 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.