Out-String
輸出輸入物件做為字串。
Syntax
Out-String
[-Width <Int32>]
[-NoNewline]
[-InputObject <PSObject>]
[<CommonParameters>]
Out-String
[-Stream]
[-Width <Int32>]
[-InputObject <PSObject>]
[<CommonParameters>]
Description
Cmdlet 會將 Out-String
輸入物件轉換成字串。 根據預設,Out-String
會累積字串並將其傳回為單一字串,但您可以使用 Stream 參數Out-String
,一次傳回一行,或建立字串數位。 此 Cmdlet 可讓您搜尋和操作字串輸出,比在傳統殼層中的物件操作更便利。
範例
範例 1:取得目前的文化特性,並將數據轉換成字串
本範例會取得目前用戶的地區設定,並將對象數據轉換成字串。
$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
$C
變數會儲存 Selected.System.Globalization.CultureInfo 物件。 對像是將輸出向下傳送至 Select-Object
的結果Get-Culture
。 Property 參數會使用星號 () *
通配符來指定 物件中包含的所有屬性。
Out-String
會使用 InputObject 參數來指定儲存在變數中的 $C
CultureInfo 物件。 中的 $C
物件會轉換成字串。
注意
若要檢視 Out-String
數位,請將輸出儲存至變數,並使用數位索引來檢視專案。 如需陣列索引的詳細資訊,請參閱 about_Arrays。
$str = Out-String -InputObject $C -Width 100
範例 2:使用物件
此範例示範使用物件和使用字串之間的差異。 此命令會顯示包含文字 gcm 的別名,也就是 的 Get-Command
別名。
Get-Alias | Out-String -Stream | Select-String -Pattern "gcm"
Alias gcm -> Get-Command
Get-Alias
會取得 System.Management.Automation.AliasInfo 物件,每個別名各一個,並將對象傳送至管線。 Out-String
會使用 Stream 參數,將每個物件轉換成字串,而不是將所有物件串連成單一字串。 System.String 物件會在管線下傳送,並使用 Select-String
Pattern 參數來尋找文字 gcm 的相符專案。
注意
如果您省略 Stream 參數,命令會顯示所有別名,因為 Select-String
會在傳回的單一字串Out-String
中找到 text gcm。
範例 3:使用 Width 參數來防止截斷。
雖然 大部分的 Out-String
輸出都會包裝到下一行,但在某些情況下,格式化系統會先截斷輸出,然後再傳遞至 Out-String
。 您可以使用 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
參數
-InputObject
指定要寫入字串的物件。 輸入包含物件的變數,或輸入可取得物件的命令或運算式。
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NoNewline
從 PowerShell 格式器所產生的輸出中移除所有換行符。 保留屬於字串物件一部分的換行符。
此參數是在 PowerShell 6.0 中引進。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Stream
表示 Cmdlet 會針對輸入物件的每一行傳送個別字串。 根據預設,每個物件的字串會累積,並會以單一字串形式傳送。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Width
指定每一行輸出的字元數目。 根據所使用的格式子 Cmdlet,任何其他字元都會包裝到下一行或截斷。 Width 參數只適用於正在格式化的物件。 如果您省略這個參數,則寬度取決於主機程式的特性。 在終端機 (主控台) 視窗中,目前的視窗寬度會當做預設值使用。 PowerShell 控制台視窗預設為安裝時 80 個字元的寬度。
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
輸入
您可以將物件向下傳送至 Out-String
。
輸出
Out-String
會傳回它從輸入物件建立的字串。
備註
包含動詞命令的 Out
Cmdlet 不會格式化物件。 Cmdlet 會將 Out
物件傳送至指定之顯示目的地的格式器。