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