Поиск по сайту:

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 преобразует входные объекты в строки. По умолчанию Out-String накапливает строки и возвращает их как одну строку, но вы можете использовать параметр Stream для направления Out-String для возврата одной строки за раз или создания массива строк. Этот командлет позволяет выполнять поиск и манипулировать строковым выводом, как в традиционных оболочках, когда манипулирование объектами менее удобно.

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 для указания объекта CultureInfo, хранящегося в переменной $C. Объекты в $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. Используйте параметр Ширина, чтобы предотвратить усечение.

Хотя большая часть вывода из 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

Указывает количество символов в каждой строке вывода. Любые дополнительные символы переносятся на следующую строку или усекаются в зависимости от используемого командлета форматирования. Параметр Ширина применяется только к объектам, которые форматируются. Если вы опустите этот параметр, ширина будет определяться характеристиками хост-программы. В окнах терминала (консоли) текущая ширина окна используется как значение по умолчанию. При установке окна консоли PowerShell по умолчанию имеют ширину 80 символов.

Тип :

Int32

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

Входы

PSObject

В этот командлет можно передать любой объект.

Выходы

Строка

Этот командлет возвращает строку, созданную из входного объекта.

Примечания

Командлеты, содержащие глагол Out, не форматируют объекты. Командлеты Out отправляют объекты форматтеру для указанного места назначения отображения.

В PowerShell 7.2 добавлена возможность контролировать отображение escape-последовательностей ANSI. Вывод, оформленный в формате ANSI, передаваемый в Out-String, можно изменить на основе настройки свойства $PSStyle.OutputRendering. Дополнительные сведения см. в разделе about_ANSI_Terminals.