Out-String

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

语法

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

说明

Out-String cmdlet 将 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 对象(当前会话中的每个别名对应一个)。

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

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

参数

-InputObject

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

类型:PSObject
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-Stream

指示 cmdlet 分别发送每个对象的字符串。 默认情况下,每个对象的字符串将累积并作为单个字符串发送。

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

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Width

指定每行输出中的字符数。 任何其他字符将被截断,而不是包装。 Width 参数仅适用于正在格式化的对象。 如果省略此参数,则宽度由主机程序的特征决定。 Windows PowerShell 控制台的默认值为 80(字符)。

类型:Int32
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

输入

PSObject

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

输出

String

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

备注

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