Out-String

Generuje 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żna użyć parametru Stream, aby zwrócić Out-String jeden wiersz naraz lub utworzyć tablicę 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.

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-Commandpolecenia .

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 pliku text gcm.

Uwaga

Jeśli pominiesz parametr Stream, polecenie wyświetli wszystkie aliasy, ponieważ Select-String znajdzie tekst gcm w pojedynczym ciągu, który Out-String zwraca.

Przykład 3. Użyj parametru Width, aby zapobiec obcięciu.

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 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 formater 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 generuje pojedynczy ciąg sformatowany tak, jak widać go w konsoli, Out-String w tym wszystkie puste nagłówki lub końcowe linie. Parametr Stream umożliwia Out-String wyprowadzenie każdego wiersza jeden po drugim. Jedynym wyjątkiem są ciągi wielowierszowe. W takim przypadku Out-String ciąg będzie nadal zwracany 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 dotyczy tylko obiektów, które są formatowane. W przypadku pominięcia tego parametru 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

Obiekty można wysyłać w dół potoku do Out-String.

Dane wyjściowe

String

Out-String 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 formatora dla określonego miejsca docelowego wyświetlania.