Поделиться через


Out-String

Выводит входные объекты в виде строки.

Синтаксис

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

Описание

Командлет Out-String преобразует входные объекты в строки. По умолчанию 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. Используйте параметр Width, чтобы предотвратить усечение.

Хотя большинство выходных данных из Out-String помещается в следующую строку, существуют сценарии, в которых выходные данные усекаются системой форматирования перед передачей в Out-String. Вы можете избежать усечения с помощью параметра Width .

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

Указывает объекты для записи в строку. Введите переменную, которая содержит объекты, или команду или выражение, которое возвращает объекты.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-NoNewline

Удаляет все новые строки из выходных данных, созданных методом форматирования PowerShell. Новые строки, которые являются частью строковых объектов, сохраняются.

Этот параметр появился в PowerShell 6.0.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Stream

По умолчанию выводит одну строку в формате, Out-String которая отображается в консоли, включая все пустые заголовки или конечные новые строки. Параметр Stream позволяет Out-String выводить каждую строку по одному. Единственным исключением являются многостроковые строки. В этом случае Out-String будет по-прежнему выводить строку в виде одной многостроочной строки.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Width

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

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Входные данные

PSObject

Объекты можно отправить по конвейеру в Out-String.

Выходные данные

String

Out-String возвращает строку, созданную из входного объекта.

Примечания

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