Join-String
Combina objetos do pipeline em uma única cadeia de caracteres.
Sintaxe
Default (Predefinição)
Join-String
[[-Property] <PSPropertyExpression>]
[[-Separator] <String>]
[-OutputPrefix <String>]
[-OutputSuffix <String>]
[-UseCulture]
[-InputObject <PSObject[]>]
[<CommonParameters>]
SingleQuote
Join-String
[[-Property] <PSPropertyExpression>]
[[-Separator] <String>]
[-OutputPrefix <String>]
[-OutputSuffix <String>]
[-SingleQuote]
[-UseCulture]
[-InputObject <PSObject[]>]
[<CommonParameters>]
DoubleQuote
Join-String
[[-Property] <PSPropertyExpression>]
[[-Separator] <String>]
[-OutputPrefix <String>]
[-OutputSuffix <String>]
[-DoubleQuote]
[-UseCulture]
[-InputObject <PSObject[]>]
[<CommonParameters>]
Format
Join-String
[[-Property] <PSPropertyExpression>]
[[-Separator] <String>]
[-OutputPrefix <String>]
[-OutputSuffix <String>]
[-FormatString <String>]
[-UseCulture]
[-InputObject <PSObject[]>]
[<CommonParameters>]
Description
O cmdlet Join-String 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 com o separador padrão $OFS.
Observação
Quando você define $OFS seu valor é usado para unir matrizes quando elas são convertidas em cadeias de caracteres até que a variável seja redefinida para $null. Como o uso de $OFS pode ter efeitos não intencionais em outro lugar do código, é melhor usar o parâmetro Separator em vez disso.
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.
Este cmdlet foi introduzido no PowerShell 6.2.
Exemplos
Exemplo 1: Juntar nomes de diretórios
Este exemplo une nomes de diretório, encapsula a saída entre aspas duplas e separa os nomes de diretório com vírgula e espaço (, ). A saída é um objeto string.
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 unidade C:\.
Os objetos são enviados pela canalização 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 o uso de vírgula e espaço (, ) para separar os nomes de diretório.
Os objetos Get-ChildItem são System.IO.DirectoryInfo e Join-String converte os objetos em System.String.
Exemplo 2: Usar uma substring de propriedade para unir nomes de diretório
Este exemplo usa um método de substring 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 unidade C:\.
Os objetos são enviados pela canalização para Join-String.
O bloco de script de parâmetro Property usa a variável automática ($_) para especificar a substring de propriedade Name de cada objeto. A substring obtém as primeiras quatro letras de cada nome de diretório. A substring especifica as posições de início e fim do caractere. O parâmetro SingleQuote encapsula os nomes de diretório com aspas simples. O parâmetro Separator especifica o uso de um ponto-e-vírgula (;) para separar os nomes de diretório.
Para obter mais informações sobre variáveis automáticas e substrings, 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 com 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 personagem.
Os objetos são enviados pelo pipeline para Join-String que 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), newline (`n) e tab (`t). O OutputPrefix insere um rótulo Services: com uma nova linha e guia antes da primeira linha de saída.
Para obter mais informações sobre caracteres especiais, consulte about_Special_Characters.
Exemplo 4: Criar uma definição de classe a partir 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 da cadeia de caracteres de cada objeto de pipeline entre aspas duplas.
Propriedades dos parâmetros
| Tipo: | SwitchParameter |
| Default value: | False |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
DoubleQuote
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-FormatString
Especifica uma cadeia de caracteres de formato que especifica como cada objeto de pipeline deve ser formatado antes de uni-los. Use o espaço reservado {0} para representar o objeto atual. Se você precisar manter as chaves ({}) na string formatada, você pode escapar delas dobrando as chaves ({{ e }}).
Para obter mais informações, consulte o método String.Format e Composite Formatting.
Propriedades dos parâmetros
| Tipo: | String |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
Format
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-InputObject
Especifica o texto a ser associado. Insira uma variável que contenha o texto ou digite um comando ou expressão que faça com que os objetos se juntem em cadeias de caracteres.
Propriedades dos parâmetros
| Tipo: | PSObject[] |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | True |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | 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 tabulação (`t).
Propriedades dos parâmetros
| Tipo: | String |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
| Aliases: | op |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-OutputSuffix
Texto anexado à cadeia de caracteres de saída. A cadeia de caracteres pode conter caracteres especiais, como retorno de carro (`r), nova linha (`n) e tabulação (`t).
Propriedades dos parâmetros
| Tipo: | String |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
| Aliases: | o |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-Property
O nome de uma propriedade, ou uma expressão de propriedade, a ser convertida em texto.
Propriedades dos parâmetros
| Tipo: | PSPropertyExpression |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | 0 |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-Separator
Texto ou caracteres, como vírgula ou ponto-e-vírgula, inseridos entre o texto de cada objeto de pipeline.
Por padrão, os objetos de pipeline são unidos sem um separador. Se a variável de preferência Separador de Campo de Saída ($OFS) estiver definida, esse valor será usado, a menos que esse parâmetro seja especificado.
Observação
Quando você define $OFS seu valor é usado para unir matrizes quando elas são convertidas em cadeias de caracteres até que a variável seja redefinida para $null. Como o uso de $OFS pode ter efeitos não intencionais em outro lugar do código, é melhor usar o parâmetro Separator em vez disso.
Propriedades dos parâmetros
| Tipo: | String |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | 1 |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-SingleQuote
Encapsula o valor da cadeia de caracteres de cada objeto de pipeline entre aspas simples.
Propriedades dos parâmetros
| Tipo: | SwitchParameter |
| Default value: | False |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
SingleQuote
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-UseCulture
Usa o separador de lista para a cultura atual como o delimitador de item. Para localizar o separador de lista para uma cultura, use o seguinte comando: (Get-Culture).TextInfo.ListSeparator.
Propriedades dos parâmetros
| Tipo: | SwitchParameter |
| Default value: | False |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
CommonParameters
Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.