Out-String
Výstupem jsou vstupní objekty jako řetězec.
Syntaxe
Out-String
[-Width <Int32>]
[-NoNewline]
[-InputObject <PSObject>]
[<CommonParameters>]
Out-String
[-Stream]
[-Width <Int32>]
[-InputObject <PSObject>]
[<CommonParameters>]
Description
Rutina Out-String
převede vstupní objekty na řetězce. Ve výchozím nastavení Out-String
se řetězce hromadí a vrátí jako jeden řetězec, ale pomocí parametru Stream můžete nasměrovat Out-String
vrácení jednoho řádku najednou nebo vytvořit pole řetězců. Tato rutina umožňuje prohledávat a manipulovat s výstupem řetězce stejně jako v tradičních prostředích, když je manipulace s objekty méně pohodlná.
PowerShell také přidá OSS
funkci, která volá Out-String -Stream
jako zkrácený způsob použití Out-String
v kanálu.
Příklady
Příklad 1: Získání aktuální jazykové verze a převod dat na řetězce
Tento příklad získá místní nastavení pro aktuálního uživatele a převede data objektu na řetězce.
$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
Proměnná $C
ukládá Selected.System.Globalization.CultureInfo objekt. Objekt je výsledkem Get-Culture
odeslání výstupu kanálu do Select-Object
. Parametr Property používá zástupný znak hvězdičky (*
) k určení všech vlastností, které jsou obsaženy v objektu.
Out-String
používá InputObject parametr k určení CultureInfo objektu uloženého $C
v proměnné. Objekty jsou $C
převedeny na řetězec.
Poznámka:
Chcete-li zobrazit Out-String
pole, uložte výstup do proměnné a pomocí indexu pole zobrazte prvky. Další informace o indexu pole najdete v tématu about_Arrays.
$str = Out-String -InputObject $C -Width 100
Příklad 2: Práce s objekty
Tento příklad ukazuje rozdíl mezi prací s objekty a prací s řetězci. Příkaz zobrazí alias, který obsahuje text gcm, alias pro Get-Command
.
Get-Alias | Out-String -Stream | Select-String -Pattern "gcm"
Alias gcm -> Get-Command
Get-Alias
získá System.Management.Automation.AliasInfo objekty, jeden pro každý alias a odešle objekty dolů kanálu. Out-String
používá parametr Stream k převodu každého objektu na řetězec místo zřetězení všech objektů do jednoho řetězce.
Objekty System.String se odesílají do kanálu a Select-String
pomocí parametru Pattern vyhledá shody pro text gcm.
Poznámka:
Pokud parametr Stream vynecháte, příkaz zobrazí všechny aliasy, protože Select-String
najde text gcm v jednom řetězci, který Out-String
se vrátí.
Příklad 3: Pokud chcete zabránit zkrácení, použijte parametr Width.
Zatímco většina výstupu z Out-String
je zabalena na další řádek, existují scénáře, kdy je výstup před předáním Out-String
zkrácen systémem formátování . Zkrácení se můžete vyhnout pomocí 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
Určuje objekty, které mají být zapsány do řetězce. Zadejte proměnnou, která obsahuje objekty, nebo zadejte příkaz nebo výraz, který objekty získá.
Typ: | PSObject |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-NoNewline
Odebere všechny nové čáry z výstupu vygenerovaného formátovacím modulem PowerShellu. Newlines that are part of the string objects are preserved.
Tento parametr byl představen v PowerShellu 6.0.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Stream
Ve výchozím nastavení výstupuje jeden řetězec formátovaný tak, Out-String
jak byste ho viděli v konzole, včetně všech prázdných záhlaví nebo koncových novýchřádků. Parametr Stream umožňuje Out-String
výstup každého řádku o jeden po druhém. Jedinou výjimkou jsou víceřádkové řetězce. V takovém případě Out-String
bude řetězec dál výstupem jako jeden víceřádkový řetězec.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Width
Určuje počet znaků v každém řádku výstupu. Všechny další znaky jsou zabalené na další řádek nebo zkráceny v závislosti na použité rutině formátovače. Parametr Width se vztahuje pouze na objekty, které jsou formátovány. Pokud tento parametr vynecháte, šířka je určena vlastnostmi hostitelského programu. V oknech terminálu (konzola) se jako výchozí hodnota používá aktuální šířka okna. Okna konzoly PowerShellu mají při instalaci šířku 80 znaků.
Typ: | Int32 |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
Do této rutiny můžete převést libovolný objekt.
Výstupy
Tato rutina vrátí řetězec, který vytvoří ze vstupního objektu.
Poznámky
Rutiny, které obsahují Out
příkaz, neformátují objekty. Rutiny Out
odesílají objekty do formátovače určeného cíle zobrazení.
PowerShell 7.2 přidal možnost řídit, jak se řídicí sekvence ANSI vykreslují. Výstup s dekorací ANSI, který se předává, Out-String
lze změnit na základě nastavení $PSStyle.OutputRendering
vlastnosti. Další informace najdete v tématu about_ANSI_Terminals.