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
sammelt die Zeichenfolgen und gibt sie als einzelne Zeichenfolge zurück. Sie können jedoch den parameter Stream verwenden, um Out-String
eine Zeile nach der anderen 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.
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 nach unten in der Pipeline an Select-Object
. Der Property-Parameter verwendet ein Sternchen (*
) als Platzhalter, um anzugeben, dass alle Eigenschaften im -Objekt enthalten sind.
Out-String
verwendet den InputObject-Parameter, um das in der $C
Variablen gespeicherte CultureInfo-Objekt anzugeben. Die Objekte in $C
werden in eine Zeichenfolge konvertiert.
Hinweis
Speichern Sie zum Anzeigen des Arrays Out-String
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 enthält, den Alias für Get-Command
.
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 nach unten in der 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 über die Pipeline gesendet und Select-String
verwenden den Pattern-Parameter , um Übereinstimmungen für den Text gcm zu suchen.
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 das Abschneiden zu verhindern.
Während die meisten Ausgaben von Out-String
in die nächste Zeile umschlossen werden, 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 Zeilenumbrüche aus der Ausgabe, die vom PowerShell-Formatierer generiert wird. Zeilen newlines, 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 mehrlineige Zeichenfolgen. In diesem Fall Out-String
gibt die Zeichenfolge weiterhin als 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 Formatierer-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 (Konsole) wird die aktuelle Fensterbreite als Standardwert verwendet. PowerShell-Konsolenfenster sind bei der Installation standardmäßig 80 Zeichen breit.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
Sie können Objekte in der Pipeline an Out-String
senden.
Ausgaben
Out-String
gibt die Zeichenfolge zurück, die aus dem Eingabeobjekt erstellt wird.
Hinweise
Die Cmdlets, die das Out
Verb enthalten, formatieren keine Objekte. Die Out
Cmdlets senden Objekte an den Formatierer für das angegebene Anzeigeziel.