Join-String
Kombinerar objekt från pipelinen till en enda sträng.
Syntax
Default (Standard)
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
Den Join-String cmdleten sammanfogar, eller kombinerar, text från pipelineobjekt till en enda sträng.
Om inga parametrar anges konverteras pipelineobjekten till en sträng och kopplas med standardavgränsaren $OFS.
Anmärkning
När du anger $OFS används värdet för att koppla matriser när de konverteras till strängar tills variabeln återställs till $null. Eftersom användning av $OFS kan ha oavsiktliga effekter någon annanstans i koden är det bäst att använda parametern Avgränsare i stället.
Genom att ange ett egenskapsnamn konverteras egenskapens värde till en sträng och kopplas till en sträng.
I stället för ett egenskapsnamn kan ett skriptblock användas. Skriptblockets resultat konverteras till en sträng innan det kopplas till resultatet. Den kan antingen kombinera texten i ett objekts egenskap eller resultatet av objektet som konverterades till en sträng.
Den här cmdleten introducerades i PowerShell 6.2.
Exempel
Exempel 1: Koppla katalognamn
Det här exemplet kopplar katalognamn, omsluter utdata med dubbla citattecken och separerar katalognamnen med kommatecken och blanksteg (, ). Utdata är ett strängobjekt.
Get-ChildItem -Directory C:\ | Join-String -Property Name -DoubleQuote -Separator ', '
"PerfLogs", "Program Files", "Program Files (x86)", "Users", "Windows"
Get-ChildItem använder parametern Directory för att hämta alla katalognamn för den C:\ enheten.
Objekten skickas ned i pipelinen till Join-String. Parametern Egenskap anger katalognamnen. Parametern DoubleQuote omsluter katalognamnen med dubbla citattecken.
Parametern Avgränsare anger att ett kommatecken och blanksteg (, ) ska användas för att avgränsa katalognamnen.
De Get-ChildItem objekten är System.IO.DirectoryInfo och Join-String konverterar objekten till System.String.
Exempel 2: Använd en egenskapsundersträng för att koppla katalognamn
I det här exemplet används en substring-metod för att hämta de första fyra bokstäverna med katalognamn, omsluter utdata med enkla citattecken och separerar katalognamnen med ett semikolon (;).
Get-ChildItem -Directory C:\ | Join-String -Property {$_.Name.SubString(0,4)} -SingleQuote -Separator ';'
'Perf';'Prog';'Prog';'User';'Wind'
Get-ChildItem använder parametern Directory för att hämta alla katalognamn för den C:\ enheten.
Objekten skickas ned i pipelinen till Join-String.
Skriptblocket egenskap parameter använder automatisk variabel ($_) för att ange varje objekts Namn egenskapsundersträng. Delsträngen hämtar de första fyra bokstäverna i varje katalognamn. Delsträngen anger tecknets start- och slutpositioner. Parametern SingleQuote omsluter katalognamnen med enkla citattecken. Parametern Avgränsare anger att ett semikolon (;) ska användas för att avgränsa katalognamnen.
Mer information om automatiska variabler och delsträngar finns i about_Automatic_Variables och substring.
Exempel 3: Visa kopplingsutdata på en separat rad
I det här exemplet kopplas tjänstnamn till varje tjänst på en separat rad och dras in av en flik.
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 använder parametern Name med för att ange tjänster som börjar med se*. Asterisken (*) är ett jokertecken för alla tecken.
Objekten skickas ned i pipelinen för att Join-String som använder parametern Egenskap för att ange tjänstnamnen. Parametern Avgränsare anger tre specialtecken som representerar en vagnretur (`r), newline (`n) och fliken (`t).
OutputPrefix infogar en etikett Services: med en ny rad och flik före den första raden med utdata.
Mer information om specialtecken finns i about_Special_Characters.
Exempel 4: Skapa en klassdefinition från ett objekt
Det här exemplet genererar en PowerShell-klassdefinition med hjälp av ett befintligt objekt som en mall.
Det här kodexemplet använder splatting för att minska radlängden och förbättra läsbarheten. Mer information finns i 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
}
Parametrar
-DoubleQuote
Omsluter strängvärdet för varje pipelineobjekt med dubbla citattecken.
Parameteregenskaper
| Typ: | SwitchParameter |
| Standardvärde: | False |
| Stöder jokertecken: | False |
| DontShow: | False |
Parameteruppsättningar
DoubleQuote
| Position: | Named |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
-FormatString
Anger en formatsträng som anger hur varje pipelineobjekt ska formateras innan de ansluts. Använd platshållaren {0} för att representera det aktuella objektet. Om du behöver behålla klammerparenteserna ({}) i den formaterade strängen kan du undvika dem genom att fördubbla klammerparenteserna ({{ och }}).
Mer information finns i metoden String.Format och sammansatt formatering.
Parameteregenskaper
| Typ: | String |
| Standardvärde: | None |
| Stöder jokertecken: | False |
| DontShow: | False |
Parameteruppsättningar
Format
| Position: | Named |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
-InputObject
Anger den text som ska kopplas. Ange en variabel som innehåller texten eller skriv ett kommando eller uttryck som hämtar objekten att ansluta till strängar.
Parameteregenskaper
| Typ: | PSObject[] |
| Standardvärde: | None |
| Stöder jokertecken: | False |
| DontShow: | False |
Parameteruppsättningar
(All)
| Position: | Named |
| Obligatorisk: | False |
| Värde från pipeline: | True |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
-OutputPrefix
Text som infogas före utdatasträngen. Strängen kan innehålla specialtecken som vagnretur (`r), newline (`n) och flik (`t).
Parameteregenskaper
| Typ: | String |
| Standardvärde: | None |
| Stöder jokertecken: | False |
| DontShow: | False |
| Alias: | op |
Parameteruppsättningar
(All)
| Position: | Named |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
-OutputSuffix
Text som läggs till i utdatasträngen. Strängen kan innehålla specialtecken som vagnretur (`r), newline (`n) och flik (`t).
Parameteregenskaper
| Typ: | String |
| Standardvärde: | None |
| Stöder jokertecken: | False |
| DontShow: | False |
| Alias: | OS |
Parameteruppsättningar
(All)
| Position: | Named |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
-Property
Namnet på en egenskap, eller ett egenskapsuttryck, som ska konverteras till text.
Parameteregenskaper
| Typ: | PSPropertyExpression |
| Standardvärde: | None |
| Stöder jokertecken: | False |
| DontShow: | False |
Parameteruppsättningar
(All)
| Position: | 0 |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
-Separator
Text eller tecken, till exempel ett kommatecken eller semikolon som infogas mellan texten för varje pipelineobjekt.
Som standard är pipelineobjekten anslutna utan avgränsare. Om utdatafältavgränsare inställningsvariabel ($OFS) anges används det värdet såvida inte den här parametern anges.
Anmärkning
När du anger $OFS används värdet för att koppla matriser när de konverteras till strängar tills variabeln återställs till $null. Eftersom användning av $OFS kan ha oavsiktliga effekter någon annanstans i koden är det bäst att använda parametern Avgränsare i stället.
Parameteregenskaper
| Typ: | String |
| Standardvärde: | None |
| Stöder jokertecken: | False |
| DontShow: | False |
Parameteruppsättningar
(All)
| Position: | 1 |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
-SingleQuote
Omsluter strängvärdet för varje pipelineobjekt med enkla citattecken.
Parameteregenskaper
| Typ: | SwitchParameter |
| Standardvärde: | False |
| Stöder jokertecken: | False |
| DontShow: | False |
Parameteruppsättningar
SingleQuote
| Position: | Named |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
-UseCulture
Använder listavgränsaren för den aktuella kulturen som objektavgränsare. Om du vill hitta listavgränsaren för en kultur använder du följande kommando: (Get-Culture).TextInfo.ListSeparator.
Parameteregenskaper
| Typ: | SwitchParameter |
| Standardvärde: | False |
| Stöder jokertecken: | False |
| DontShow: | False |
Parameteruppsättningar
(All)
| Position: | Named |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
CommonParameters
Den här cmdleten stöder vanliga parametrar: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction och -WarningVariable. Mer information finns i about_CommonParameters.