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.