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


Out-String

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

Синтаксис

NoNewLineFormatting (по умолчанию)

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

StreamFormatting

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 используют параметр шаблона для поиска совпадений для текстового 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

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

Свойства параметра

Тип:PSObject
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:True
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-NoNewline

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

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

Свойства параметра

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

NoNewLineFormatting
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Stream

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

Свойства параметра

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

StreamFormatting
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Width

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

Свойства параметра

Тип:Int32
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

CommonParameters

Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.

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

PSObject

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

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

String

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

Примечания

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

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