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
Указывает количество символов в каждой строке выходных данных. Все дополнительные символы упаковываются в следующую строку или усечены в зависимости от используемого командлета форматирования. Параметр ширины
Свойства параметра
Тип: | 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.