当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Out-String (Microsoft.PowerShell.Utility)

作者:精品下载站 日期:2024-12-14 02:04:42 浏览:16 分类:玩电脑

Out-String (Microsoft.PowerShell.Utility)


Out-String

模块 :Microsoft.PowerShell.Utility

将输入对象输出为字符串。

句法

Out-String
   [-Width <Int32>]
   [-NoNewline]
   [-InputObject <PSObject>]
   [<CommonParameters>]
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 的结果。 Property 参数使用星号 (*) 通配符来指定对象中包含的所有属性。

Out-String 使用 InputObject 参数指定存储在 $C 变量中的 CultureInfo 对象。 $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 的单个字符串中找到文本 gcm Out-String 返回。

示例 3:使用 Width 参数防止截断。

虽然 Out-String 的大多数输出都会换行到下一行,但在某些情况下,输出在传递给 Out-String 之前会被格式化系统截断。您可以使用宽度参数避免截断。

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

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

类型 :

PS对象

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

False

-NoNewline

从 PowerShell 格式化程序生成的输出中删除所有换行符。作为字符串对象一部分的换行符将被保留。

此参数是在 PowerShell 6.0 中引入的。

类型 :

SwitchParameter

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-Stream

默认情况下,Out-String 输出单个字符串,其格式与您在控制台中看到的一样,包括任何空白标题或尾随换行符。 Stream 参数使 Out-String 能够逐行输出每一行。唯一的例外是多行字符串。在这种情况下,Out-String 仍会将字符串输出为单个多行字符串。

类型 :

SwitchParameter

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-Width

指定每行输出中的字符数。任何其他字符都将换行到下一行或被截断,具体取决于所使用的格式化程序 cmdlet。 宽度参数仅适用于正在格式化的对象。如果省略该参数,则宽度由宿主程序的特性决定。在终端(控制台)窗口中,当前窗口宽度用作默认值。安装时 PowerShell 控制台窗口默认宽度为 80 个字符。

类型 :

整数32

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

输入

PSObject

您可以通过管道将任何对象传递给此 cmdlet。

输出

字符串

此 cmdlet 返回它从输入对象创建的字符串。

笔记

包含 Out 动词的 cmdlet 不会格式化对象。 Out cmdlet 将对象发送到指定显示目标的格式化程序。

PowerShell 7.2 添加了控制 ANSI 转义序列呈现方式的功能。传递给 Out-String 的 ANSI 修饰输出可以根据 $PSStyle.OutputRendering 属性的设置进行更改。有关详细信息,请参阅 about_ANSI_Terminals。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯