Out-String

Wyprowadza obiekty wejściowe jako ciąg.

Składnia

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

Opis

Polecenie Out-String cmdlet konwertuje obiekty wejściowe na ciągi. Domyślnie Out-String gromadzi ciągi i zwraca je jako pojedynczy ciąg, ale możesz użyć parametru Stream , aby kierować Out-String polecenie, aby zwrócić jeden wiersz jednocześnie lub utworzyć tablicę ciągów. To polecenie cmdlet umożliwia wyszukiwanie i manipulowanie danymi wyjściowymi ciągów, tak jak w tradycyjnych powłokach, gdy manipulowanie obiektami jest mniej wygodne.

Program PowerShell dodaje OSS również funkcję, która wywołuje Out-String -Stream metodę skróconą do użycia Out-String w potoku.

Przykłady

Przykład 1. Pobieranie bieżącej kultury i konwertowanie danych na ciągi

Ten przykład pobiera ustawienia regionalne bieżącego użytkownika i konwertuje dane obiektu na ciągi.

$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

Zmienna $C przechowuje obiekt Selected.System.Globalization.CultureInfo . Obiekt jest wynikiem wysyłania danych wyjściowych Get-Culture w dół potoku do Select-Object. Parametr Property używa symbolu wieloznakowego gwiazdki (*), aby określić wszystkie właściwości zawarte w obiekcie.

Out-String używa parametru InputObject do określenia obiektu CultureInfo przechowywanego w zmiennej $C . Obiekty w pliku $C są konwertowane na ciąg.

Uwaga

Aby wyświetlić tablicę Out-String , zapisz dane wyjściowe w zmiennej i użyj indeksu tablicy, aby wyświetlić elementy. Aby uzyskać więcej informacji na temat indeksu tablicy, zobacz about_Arrays.

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

Przykład 2: Praca z obiektami

W tym przykładzie pokazano różnicę między pracą z obiektami i pracą z ciągami. Polecenie wyświetla alias zawierający tekst gcm, alias dla .Get-Command

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

Alias           gcm -> Get-Command

Get-AliasPobiera obiekty System.Management.Automation.AliasInfo, po jednym dla każdego aliasu i wysyła obiekty w dół potoku. Out-String używa parametru stream do konwertowania każdego obiektu na ciąg, a nie łączenia wszystkich obiektów w jeden ciąg. Obiekty System.String są wysyłane w dół potoku i Select-String używają parametru Pattern do znajdowania dopasowań dla tekstu gcm.

Uwaga

Jeśli pominięto parametr stream , polecenie wyświetli wszystkie aliasy, ponieważ Select-String znajdzie tekst gcm w jednym zwracaniu ciągu Out-String .

Przykład 3. Użyj parametru Width, aby zapobiec obcinaniu.

Podczas gdy większość danych wyjściowych z Out-String jest opakowana do następnego wiersza, istnieją scenariusze, w których dane wyjściowe są obcięte przez system formatowania przed przekazaniem do elementu Out-String. Można uniknąć obcinania przy użyciu parametru 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

Parametry

-InputObject

Określa obiekty, które mają być zapisywane w ciągu. Wprowadź zmienną zawierającą obiekty lub wpisz polecenie lub wyrażenie, które pobiera obiekty.

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

-NoNewline

Usuwa wszystkie nowe linie z danych wyjściowych wygenerowanych przez program formatujący programu PowerShell. Nowe linie, które są częścią obiektów ciągów, są zachowywane.

Ten parametr został wprowadzony w programie PowerShell 6.0.

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

-Stream

Domyślnie Out-String wyprowadza pojedynczy ciąg sformatowany tak, jak widać to w konsoli, w tym wszystkie puste nagłówki lub końcowe linie. Parametr strumienia umożliwia Out-String wyprowadzanie każdego wiersza jeden po drugim. Jedynym wyjątkiem są ciągi wielowierszowe. W takim przypadku Out-String nadal będzie zwracać ciąg jako pojedynczy, wielowierszowy ciąg.

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

-Width

Określa liczbę znaków w każdym wierszu danych wyjściowych. Wszelkie dodatkowe znaki są opakowane do następnego wiersza lub obcięte w zależności od użytego polecenia cmdlet formatującego. Parametr Width ma zastosowanie tylko do obiektów, które są formatowane. Jeśli pominięto ten parametr, szerokość jest określana przez cechy programu hosta. W oknach terminalu (konsoli) bieżąca szerokość okna jest używana jako wartość domyślna. Okna konsoli programu PowerShell domyślnie mają szerokość 80 znaków podczas instalacji.

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

Dane wejściowe

PSObject

Do tego polecenia cmdlet można przekazać dowolny obiekt.

Dane wyjściowe

String

To polecenie cmdlet zwraca ciąg tworzony na podstawie obiektu wejściowego.

Uwagi

Polecenia cmdlet zawierające Out czasownik nie formatują obiektów. Polecenia Out cmdlet wysyłają obiekty do obiektu formatującego dla określonego miejsca docelowego wyświetlania.

Program PowerShell 7.2 dodał możliwość kontrolowania sposobu renderowania sekwencji ucieczki ANSI. Dane wyjściowe ozdobione Out-String anSI, które są przekazywane, można zmienić na podstawie ustawienia $PSStyle.OutputRendering właściwości. Aby uzyskać więcej informacji, zobacz about_ANSI_Terminals.