Out-String

将对象作为一系列字符串发送到主机。

语法

Out-String
   [-Stream]
   [-Width <Int32>]
   [-InputObject <PSObject>]
   [<CommonParameters>]

说明

cmdlet Out-String 将Windows PowerShell管理的对象转换为字符串数组。 默认情况下, Out-String 会累积字符串并将其作为单个字符串返回,但可以使用 Stream 参数直接Out-String一次返回一个字符串。 此 cmdlet 用于在对象操作不太方便时像在传统 shell 中一样搜索和操作字符串输出。

示例

示例 1:将文本以字符串形式输出到控制台

PS C:\> Get-Content C:\test1\testfile2.txt | Out-String

此命令将 Testfile2.txt 文件的内容作为单个字符串发送到控制台。 它使用 Get-Content cmdlet 获取文件的内容。 管道运算符 (|) 将内容发送到 Out-String,后者将内容作为字符串发送到控制台。

示例 2:获取当前区域性并将数据转换为字符串

第一个命令使用 Get-Culture cmdlet 获取区域设置。 管道运算符 (|) 将结果发送到 Select-Object cmdlet,该 cmdlet 选择返回的区域性对象 Get-Culture (*) 的所有属性。 然后,该命令将结果存储在 变量中 $C

第二个命令使用 Out-String cmdlet 将 CultureInfo 对象转换为一系列字符串, (每个属性) 一个字符串。 它使用 InputObject 参数将 $C 变量传递给 Out-StringWidth 参数被设置为每行 100 个字符,以防止发生截断。

PS C:\> $C = Get-Culture | Select-Object *
PS C:\> Out-String -InputObject $C -Width 100

这些命令获取当前用户的区域设置,并将该数据转换为字符串。

示例 3:使用对象

PS C:\> Get-Alias | Out-String -Stream | Select-String "Get-Command"

此示例演示了使用对象和使用字符串之间的差异。 该命令显示包含短语“Get-Command”的别名。 它使用 Get-Alias cmdlet 获取一组 AliasInfo 对象, (当前会话) 中的每个别名一个。

管道运算符 (|) 将 cmdlet 的 Get-Alias 输出发送到 Out-String cmdlet,该 cmdlet 会将对象转换为一系列字符串。 它使用 的 Stream 参数Out-String单独发送每个字符串,而不是将它们串联成单个字符串。 另一个管道运算符将字符串发送到 Select-String cmdlet,该 cmdlet 选择字符串中任意位置包含“Get-Command”的字符串。

如果省略 Stream 参数,该命令将显示所有别名,因为在Select-String返回的单个字符串Out-String中查找“Get-Command”,并且格式化程序将字符串显示为表。

参数

-InputObject

指定要写入字符串的对象。 输入一个包含对象的变量,或键入可获取对象的命令或表达式。

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Stream

指示 cmdlet 单独发送每个对象的字符串。 默认情况下,每个对象的字符串都将作为单个字符串进行累积和发送。

若要使用 Stream 参数,请输入 -Stream 或其别名 ost

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Width

指定输出的每一行中的字符数。 将截断任何额外字符,不换行。 Width 参数仅适用于正在设置格式的对象。 如果省略此参数,则由主机程序的特征确定宽度。 Windows PowerShell 控制台的默认值为 80(字符)。

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

PSObject

可以通过管道将 对象传递给 Out-String

输出

String

Out-String 返回它从输入对象创建的字符串。

备注

  • 包含 Out 谓词的 cmdlet 不对对象进行格式设置;它们只呈现对象,并将对象发送到指定的显示目标。 如果将未格式化的对象发送给 Out cmdlet,该 cmdlet 会在呈现该对象之前,将它发送到格式化 cmdlet。
  • Out cmdlet 没有用于提供名称和文件路径的参数。 若要将数据发送到 Out cmdlet,请使用管道运算符 (|) 将 Windows PowerShell 命令的输出发送到该 cmdlet。 还可以将数据存储在变量中,并使用 InputObject 参数将数据传递给 cmdlet。