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-String
。
Width 参数设置为每行 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-String
Stream 参数单独发送每个字符串,而不是将它们串联成单个字符串。
另一个管道运算符将字符串发送到 Select-String
cmdlet,该 cmdlet 选择字符串中的任意位置包含“Get-Command”的字符串。
如果省略 Stream 参数,该命令将显示所有别名,因为 Select-String
在 Out-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 |
输入
可以通过管道将对象传递给 Out-String
。
输出
Out-String
返回从输入对象创建的字符串。
备注
- 包含不设置对象的 Out 谓词的 cmdlet;它们只是呈现它们并将其发送到指定的显示目标。 如果将未格式化的对象发送到 Out cmdlet,则 cmdlet 会在呈现之前将其发送到格式化 cmdlet。
- Out cmdlet 没有采用名称或文件路径的参数。 若要将数据发送到 Out cmdlet,请使用管道运算符 (|) 将 Windows PowerShell 命令的输出发送到 cmdlet。 还可以将数据存储在变量中,并使用 InputObject 参数将数据传递给 cmdlet。