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 cmdlet Out-String 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 skierować Out-String, aby zwrócić jeden wiersz naraz 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.

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 Get-Culture wysyłania danych wyjściowych w dół potoku do Select-Object. Parametr właściwości używa gwiazdki () w celu określenia wszystkich właściwości zawartych w obiekcie.

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

Nuta

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-Alias pobiera obiekty System.Management.Automation.AliasInfo, po jednym dla każdego aliasu i wysyła obiekty w dół potoku. Out-String używa parametru Stream, aby przekonwertować każdy obiekt na ciąg, zamiast łączyć wszystkie obiekty w jeden ciąg. Obiekty System.String są wysyłane w dół potoku, a używa parametru pattern w celu znalezienia dopasowań dla tekstu gcm.

Nuta

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

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

Typ:PSObject
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych: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.

Typ:SwitchParameter
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Stream

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

Typ:SwitchParameter
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 sformatowanych. 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.

Typ:Int32
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

PSObject

Można wysyłać obiekty 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 czasownik Out nie formatują obiektów. Polecenia cmdlet Out wysyłają obiekty do obiektu formatującego dla określonego miejsca docelowego wyświetlania.