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-CommandGet-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.