Join-String
Объединяет объекты из конвейера в одну строку.
Синтаксис
Join-String
[[-Property] <PSPropertyExpression>]
[[-Separator] <String>]
[-OutputPrefix <String>]
[-OutputSuffix <String>]
[-UseCulture]
[-InputObject <PSObject[]>]
[<CommonParameters>]
Join-String
[[-Property] <PSPropertyExpression>]
[[-Separator] <String>]
[-OutputPrefix <String>]
[-OutputSuffix <String>]
[-SingleQuote]
[-UseCulture]
[-InputObject <PSObject[]>]
[<CommonParameters>]
Join-String
[[-Property] <PSPropertyExpression>]
[[-Separator] <String>]
[-OutputPrefix <String>]
[-OutputSuffix <String>]
[-DoubleQuote]
[-UseCulture]
[-InputObject <PSObject[]>]
[<CommonParameters>]
Join-String
[[-Property] <PSPropertyExpression>]
[[-Separator] <String>]
[-OutputPrefix <String>]
[-OutputSuffix <String>]
[-FormatString <String>]
[-UseCulture]
[-InputObject <PSObject[]>]
[<CommonParameters>]
Описание
Командлет Join-String
объединяет или объединяет текст из объектов конвейера в одну строку.
Если параметры не указаны, объекты конвейера преобразуются в строку и соединяются с разделителем $OFS
по умолчанию .
При указании имени свойства значение свойства преобразуется в строку и объединяется в строку.
Вместо имени свойства можно использовать блок скрипта. Результат блока скрипта преобразуется в строку перед его соединением для формирования результата. Он может объединять текст свойства объекта или результат объекта, преобразованного в строку.
Этот командлет появился в PowerShell 6.2.
Примеры
Пример 1. Присоединение имен каталогов
В этом примере имена каталогов объединяются, выходные данные заключены в двойные кавычки и имена каталогов разделяются запятыми и пробелами (,
). Выходные данные являются строковым объектом.
Get-ChildItem -Directory C:\ | Join-String -Property Name -DoubleQuote -Separator ', '
"PerfLogs", "Program Files", "Program Files (x86)", "Users", "Windows"
Get-ChildItem
использует параметр Directory для получения всех имен каталогов C:\
для диска.
Объекты отправляются по конвейеру в Join-String
. Параметр Property указывает имена каталогов. Параметр DoubleQuote заключает имена каталогов в двойные кавычки.
Параметр Separator указывает на использование запятой и пробела (,
) для разделения имен каталогов.
Объекты Get-ChildItem
являются System.IO.DirectoryInfo и Join-String
преобразуют их в System.String.
Пример 2. Использование подстроки свойства для объединения имен каталогов
В этом примере метод подстроки используется для получения первых четырех букв имен каталогов, заключает выходные данные в одинарные кавычки и разделяет имена каталогов точкой с запятой (;
).
Get-ChildItem -Directory C:\ | Join-String -Property {$_.Name.SubString(0,4)} -SingleQuote -Separator ';'
'Perf';'Prog';'Prog';'User';'Wind'
Get-ChildItem
использует параметр Directory для получения всех имен каталогов C:\
для диска.
Объекты отправляются по конвейеру в Join-String
.
Блок скрипта параметра Property использует автоматическую переменную ($_
) для указания подстроки свойства Name каждого объекта. Подстрока получает первые четыре буквы каждого имени каталога. Подстрока задает начальную и конечную позиции символов. Параметр SingleQuote заключает имена каталогов в одинарные кавычки. Параметр Separator указывает, что для разделения имен каталогов используется точка с запятой (;
).
Дополнительные сведения об автоматических переменных и подстроках см. в разделе about_Automatic_Variables и подстрока.
Пример 3. Отображение выходных данных соединения в отдельной строке
В этом примере имена служб объединяются с каждой службой в отдельной строке и с отступом по вкладке.
Get-Service -Name se* | Join-String -Property Name -Separator "`r`n`t" -OutputPrefix "Services:`n`t"
Services:
seclogon
SecurityHealthService
SEMgrSvc
SENS
Sense
SensorDataService
SensorService
SensrSvc
SessionEnv
Get-Service
использует параметр Name с , чтобы указать службы, начинающиеся с se*
. Звездочка (*
) — это подстановочный знак для любого символа.
Объекты отправляются по конвейеру Join-String
в , который использует параметр Property для указания имен служб. Параметр Separator задает три специальных символа, представляющих возврат каретки (`r
), новую строку (`n
) и табуляция (`t
). OutputPrefix вставляет метку Services: с новой строкой и вкладкой перед первой строкой выходных данных.
Дополнительные сведения о специальных символах см. в разделе about_Special_Characters.
Пример 4. Create определения класса из объекта
В этом примере создается определение класса PowerShell с использованием существующего объекта в качестве шаблона.
В этом примере кода используется сплаттинг для уменьшения длины строки и улучшения удобочитаемости. Дополнительные сведения см. в разделе about_Splatting.
$obj = [pscustomobject] @{Name = "Joe"; Age = 42}
$parms = @{
Property = "Name"
FormatString = ' ${0}'
OutputPrefix = "class {`n"
OutputSuffix = "`n}`n"
Separator = "`n"
}
$obj.PSObject.Properties | Join-String @parms
class {
$Name
$Age
}
Параметры
-DoubleQuote
Заключает строковое значение каждого объекта конвейера в двойные кавычки.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FormatString
Строка формата, указывающая способ форматирования каждого элемента.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Указывает соединяемый текст. Введите переменную, содержащую текст, или введите команду или выражение, которое получает объекты для объединения в строки.
Type: | PSObject[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-OutputPrefix
Текст, вставленный перед выходной строкой. Строка может содержать специальные символы, такие как возврат каретки (`r
), новая строка (`n
) и табуляция (`t
).
Type: | String |
Aliases: | op |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OutputSuffix
Текст, добавляемый к выходной строке. Строка может содержать специальные символы, такие как возврат каретки (`r
), новая строка (`n
) и табуляция (`t
).
Type: | String |
Aliases: | os |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Property
Имя свойства или выражения свойства, которое будет проецировать объект конвейера в текст.
Type: | PSPropertyExpression |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Separator
Текст или символы, такие как запятая или точка с запятой, которые вставляются между текстом для каждого объекта конвейера.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SingleQuote
Заключает строковое значение каждого объекта конвейера в одинарные кавычки.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseCulture
Использует разделитель списка для текущего языка и региональных параметров в качестве разделителя элементов. Чтобы найти разделитель списка для языка и региональных параметров, используйте следующую команду: (Get-Culture).TextInfo.ListSeparator
.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |