Out-String
将输入对象输出为字符串。
语法
		NoNewLineFormatting (默认值)
	   
	Out-String
    [-Width <Int32>]
    [-NoNewline]
    [-InputObject <PSObject>]
    [<CommonParameters>]
		StreamFormatting
	 
	Out-String
    [-Stream]
    [-Width <Int32>]
    [-InputObject <PSObject>]
    [<CommonParameters>]
说明
              Out-String cmdlet 将输入对象转换为字符串。 默认情况下,Out-String 累积字符串并将其作为单个字符串返回,但可以使用 Stream 参数将 Out-String 一次返回一行或创建字符串数组。 此 cmdlet 允许在对象操作不太方便时像在传统 shell 中一样搜索和操作字符串输出。
PowerShell 还添加了 oss 函数,该函数调用 Out-String -Stream 作为在管道中使用 Out-String 的简写方式。
示例
示例 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 对象。 该对象是 Get-Culture 将输出发送到管道以 Select-Object的结果。 
              属性 参数使用星号(*)通配符来指定对象中包含的所有属性。
              Out-String 使用 InputObject 参数来指定存储在  变量中的 $C 对象。 
              $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。
示例 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 
		指定要写入字符串的对象。 输入包含对象的变量,或键入获取对象的命令或表达式。
参数属性
| 类型: | PSObject | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | True | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-NoNewline 
		从 PowerShell 格式化程序生成的输出中删除所有换行符。 保留作为字符串对象的一部分的换行符。
此参数是在 PowerShell 6.0 中引入的。
参数属性
| 类型: | SwitchParameter | 
| 默认值: | False | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
					NoNewLineFormatting 
					
				   
				| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Stream
默认情况下,Out-String 输出格式化的单个字符串,就像在控制台中看到的那样,包括任何空白标头或尾随换行符。 
              Stream 参数允许 Out-String 逐行输出。 唯一的例外是多行字符串。 在这种情况下,Out-String 仍将将字符串输出为单个多行字符串。
参数属性
| 类型: | SwitchParameter | 
| 默认值: | False | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
					StreamFormatting 
					
				 
				| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
-Width
指定每行输出中的字符数。 任何其他字符都包装到下一行或截断,具体取决于所使用的格式化程序 cmdlet。 Width 参数仅适用于正在格式化的对象。 如果省略此参数,则宽度由主机程序的特征决定。 在终端(控制台)窗口中,当前窗口宽度用作默认值。 安装时,PowerShell 控制台窗口默认宽度为 80 个字符。
参数属性
| 类型: | Int32 | 
| 默认值: | None | 
| 支持通配符: | False | 
| 不显示: | False | 
参数集
(All)
| Position: | Named | 
| 必需: | False | 
| 来自管道的值: | False | 
| 来自管道的值(按属性名称): | False | 
| 来自剩余参数的值: | False | 
CommonParameters
此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters。
输入
PSObject
你可以通过管道将任何对象传递给此 cmdlet。
输出
String
此 cmdlet 返回从输入对象创建的字符串。
备注
包含 Out 谓词的 cmdlet 不会设置对象的格式。 
              Out cmdlet 将对象发送到指定显示目标的格式化程序。
PowerShell 7.2 添加了控制 ANSI 转义序列呈现方式的功能。 可以根据 Out-String 属性的设置更改传递给 $PSStyle.OutputRendering 的 ANSI 修饰输出。 有关详细信息,请参阅 about_ANSI_Terminals。