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

语法

Out-String [-InputObject <psobject>] [-Stream] [-Width <int>] [<CommonParameters>]

说明

Out-String cmdlet 将 Windows PowerShell 管理的对象转换成字符串数组。默认情况下,Out-String 累积字符串并作为单个字符串返回它们,但您可以使用 stream 参数让 Out-String 每次返回一个字符串。此 cmdlet 用于在对象操纵不太方便时像在传统外壳程序中一样搜索和操纵字符串输出。

参数

-InputObject <psobject>

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

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

true (ByValue)

是否接受通配符?

false

-Stream

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

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Width <int>

指定输出中每一行的字符数。将截断任何额外字符,不换行。如果省略此参数,则由主机特征确定宽度。PowerShell.exe 主机的默认值是 80(字符)。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

<CommonParameters>

此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.

输入和输出

输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。

输入

System.Management.Automation.PSObject

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

输出

System.String

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

说明

包含 Out 动词的 cmdlet(输出 cmdlet)不格式化对象;它们只呈现对象,并将对象发送到指定的显示目标。如果将未格式化的对象发送给输出 cmdlet,该 cmdlet 会为它生成显示信息,然后将它发送给格式化 cmdlet。

输出 cmdlet 没有用于提供名称和文件路径的参数。若要向某个输出 cmdlet 发送数据,请使用管道运算符 (|) 将 Windows PowerShell 命令的输出发送到该 cmdlet。还可以将数据存储在变量中,并使用 InputObject 参数将数据传递给 cmdlet。有关详细信息,请参阅示例。

示例 1

C:\PS>get-content C:\test1\testfile2.txt | out-string

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






示例 2

C:\PS>$c = get-culture | select-object *

C:\PS> out-string -inputobject $c -width 100

说明
-----------
这些命令获取当前用户的区域设置,并将该数据转换为字符串。第一个命令使用 Get-Culture cmdlet 来获取区域设置。管道运算符 (|) 将结果发送给 Select-Object cmdlet,后者选择 Get-Culture 检索到的区域性对象的所有属性 (*)。然后该命令将结果存储在 $c 变量中。

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






示例 3

C:\PS>get-alias | out-string -stream | select-string "Get-Command"

说明
-----------
此命令显示包含短语“Get-Command”的别名。它使用 Get-Alias cmdlet 来获取一组 AliasInfo 对象(当前会话中的每个别名对应一个 AliasInfo 对象)。此示例说明处理对象与处理字符串之间的不同之处。

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

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






另请参阅




目录