Out-String
Wyprowadza obiekty wejściowe jako ciąg.
Składnia
NoNewLineFormatting (Domyślna)
Out-String
[-Width <Int32>]
[-NoNewline]
[-InputObject <PSObject>]
[<CommonParameters>]
StreamFormatting
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.
Program PowerShell dodaje również funkcję oss, która wywołuje Out-String -Stream jako skrócony sposób używania 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 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.
Uwaga / Notatka
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 Select-String używa parametru pattern w celu znalezienia dopasowań dla tekstu gcm.
Uwaga / Notatka
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.
Właściwości parametru
| Typ: | PSObject |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | True |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | 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.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
NoNewLineFormatting
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | 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.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
StreamFormatting
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | 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.
Właściwości parametru
| Typ: | Int32 |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
CommonParameters
To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.
Dane wejściowe
PSObject
Do tego polecenia cmdlet można przekierować dowolny obiekt.
Dane wyjściowe
String
To polecenie cmdlet 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.
Program PowerShell 7.2 dodał możliwość kontrolowania sposobu renderowania sekwencji ucieczki ANSI. Dane wyjściowe ozdobione anSI przekazywane do Out-String można zmienić na podstawie ustawienia właściwości $PSStyle.OutputRendering. Aby uzyskać więcej informacji, zobacz about_ANSI_Terminals.