Join-String
Combina objetos do pipeline em uma única cadeia de caracteres.
Syntax
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>]
Description
O Join-String
cmdlet une ou combina texto de objetos de pipeline em uma única cadeia de caracteres.
Se nenhum parâmetro for especificado, os objetos de pipeline serão convertidos em uma cadeia de caracteres e unidos ao separador $OFS
padrão .
Ao especificar um nome de propriedade, o valor da propriedade é convertido em uma cadeia de caracteres e unido em uma cadeia de caracteres.
Em vez de um nome de propriedade, um bloco de script pode ser usado. O resultado do bloco de script é convertido em uma cadeia de caracteres antes de ser unido para formar o resultado. Ele pode combinar o texto da propriedade de um objeto ou o resultado do objeto que foi convertido em uma cadeia de caracteres.
Esse cmdlet foi introduzido no PowerShell 6.2.
Exemplos
Exemplo 1: Ingressar em nomes de diretório
Este exemplo une nomes de diretório, encapsula a saída entre aspas duplas e separa os nomes de diretório com uma vírgula e espaço (,
). A saída é um objeto de cadeia de caracteres.
Get-ChildItem -Directory C:\ | Join-String -Property Name -DoubleQuote -Separator ', '
"PerfLogs", "Program Files", "Program Files (x86)", "Users", "Windows"
Get-ChildItem
usa o parâmetro Directory para obter todos os nomes de diretório para a C:\
unidade.
Os objetos são enviados pelo pipeline para Join-String
. O parâmetro Property especifica os nomes de diretório. O parâmetro DoubleQuote encapsula os nomes de diretório com aspas duplas.
O parâmetro Separator especifica usar uma vírgula e um espaço (,
) para separar os nomes de diretório.
Os Get-ChildItem
objetos são System.IO.DirectoryInfo e Join-String
convertem os objetos em System.String.
Exemplo 2: Usar uma subcadeia de caracteres de propriedade para unir nomes de diretório
Este exemplo usa um método de subcadeia de caracteres para obter as quatro primeiras letras de nomes de diretório, encapsula a saída em aspas simples e separa os nomes de diretório com um ponto e vírgula (;
).
Get-ChildItem -Directory C:\ | Join-String -Property {$_.Name.SubString(0,4)} -SingleQuote -Separator ';'
'Perf';'Prog';'Prog';'User';'Wind'
Get-ChildItem
usa o parâmetro Directory para obter todos os nomes de diretório para a C:\
unidade.
Os objetos são enviados pelo pipeline para Join-String
.
O bloco Script do parâmetro Property usa variável automática ($_
) para especificar a subcadeia de caracteres da propriedade Name de cada objeto. A subcadeia de caracteres obtém as quatro primeiras letras de cada nome de diretório. A subcadeia de caracteres especifica as posições inicial e final do caractere. O parâmetro SingleQuote encapsula os nomes de diretório com aspas simples. O parâmetro Separator especifica usar um ponto e vírgula (;
) para separar os nomes de diretório.
Para obter mais informações sobre variáveis automáticas e subcadeias de caracteres, consulte about_Automatic_Variables e Substring.
Exemplo 3: Exibir saída de junção em uma linha separada
Este exemplo une nomes de serviço a cada serviço em uma linha separada e recuado por uma guia.
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
usa o parâmetro Name com para especificar serviços que começam com se*
. O asterisco (*
) é um curinga para qualquer caractere.
Os objetos são enviados pelo pipeline para Join-String
o qual usa o parâmetro Property para especificar os nomes de serviço. O parâmetro Separator especifica três caracteres especiais que representam um retorno de carro (`r
), nova linha (`n
) e guia (`t
). O OutputPrefix insere um rótulo Serviços: com uma nova linha e uma guia antes da primeira linha de saída.
Para obter mais informações sobre caracteres especiais, consulte about_Special_Characters.
Exemplo 4: Create uma definição de classe de um objeto
Este exemplo gera uma definição de classe do PowerShell usando um objeto existente como modelo.
Este exemplo de código usa splatting para reduzir o comprimento da linha e melhorar a legibilidade. Para obter mais informações, consulte 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
}
Parâmetros
-DoubleQuote
Encapsula o valor de cadeia de caracteres de cada objeto de pipeline entre aspas duplas.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FormatString
Uma cadeia de caracteres de formato que especifica como cada item deve ser formatado.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Especifica o texto a ser unido. Insira uma variável que contenha o texto ou digite um comando ou expressão que obtém os objetos a serem unidos às cadeias de caracteres.
Type: | PSObject[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-OutputPrefix
Texto inserido antes da cadeia de caracteres de saída. A cadeia de caracteres pode conter caracteres especiais, como retorno de carro (`r
), nova linha (`n
) e guia (`t
).
Type: | String |
Aliases: | op |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OutputSuffix
Texto acrescentado à cadeia de caracteres de saída. A cadeia de caracteres pode conter caracteres especiais, como retorno de carro (`r
), nova linha (`n
) e guia (`t
).
Type: | String |
Aliases: | os |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Property
O nome de uma propriedade, ou uma expressão de propriedade, que projetará o objeto de pipeline como texto.
Type: | PSPropertyExpression |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Separator
Texto ou caracteres, como uma vírgula ou ponto-e-vírgula inserido entre o texto de cada objeto de pipeline.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SingleQuote
Encapsula o valor de cadeia de caracteres de cada objeto de pipeline entre aspas simples.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseCulture
Usa o separador de lista para a cultura atual como delimitador de item. Para localizar o separador de lista de uma cultura, use o seguinte comando: (Get-Culture).TextInfo.ListSeparator
.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |