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-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ą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
Do tego polecenia cmdlet można przekazać dowolny obiekt.
Dane wyjściowe
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.