Udostępnij za pośrednictwem


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 kumuluje ciągi i zwraca je jako pojedynczy ciąg, ale można użyć parametru Stream, aby kierować Out-String do zwracania jednego wiersza jednocześnie lub tworzenia tablicy ciągów. To polecenie cmdlet umożliwia wyszukiwanie i manipulowanie danymi wyjściowymi ciągu, 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 dla 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ć, że wszystkie właściwości znajdują się w obiekcie .

Out-String używa parametru InputObject do określenia obiektu CultureInfo przechowywanego w zmiennej $C . Obiekty w obiekcie $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 a pracą z ciągami. Polecenie wyświetla alias zawierający tekst gcm, alias dla polecenia Get-Command.

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

Alias           gcm -> Get-Command

Get-Alias Pobiera obiekty System.Management.Automation.AliasInfo , jeden dla każdego aliasu i wysyła obiekty w dół potoku. Out-Stringuż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ąguOut-String.

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

Chociaż większość danych wyjściowych z Out-String jest opakowana do następnego wiersza, istnieją scenariusze, w których dane wyjściowe są obcinane przez system formatowania przed przekazaniem do .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 do zapisania 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 wyprowadza pojedynczy ciąg sformatowany tak, jak można go zobaczyć w konsoli, Out-String w tym wszystkie puste nagłówki lub końcowe nowe linie. Parametr Stream umożliwia wyprowadzenie Out-String każdego wiersza jeden po drugim. Jedynym wyjątkiem od tego są ciągi wielowierszowe. W takim przypadku Out-String ciąg będzie nadal zwracany jako pojedynczy ciąg wielowierszowy.

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 obcinane 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 w 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 programu formatującego dla określonego miejsca docelowego wyświetlania.

Program PowerShell 7.2 dodał możliwość kontrolowania sposobu renderowania sekwencji ucieczki ANSI. Przekazane Out-String dane wyjściowe ANSI można zmienić na podstawie ustawienia $PSStyle.OutputRendering właściwości . Aby uzyskać więcej informacji, zobacz about_ANSI_Terminals.