Join-String
Kombinerar objekt från pipelinen till en enda sträng.
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
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
.
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 för att 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 för att 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.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-FormatString
En formatsträng som anger hur varje objekt ska formateras.
Typ: | String |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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.
Typ: | PSObject[] |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-OutputPrefix
Text som infogas före utdatasträngen. Strängen kan innehålla specialtecken som vagnretur (`r
), newline (`n
) och flik (`t
).
Typ: | String |
Alias: | op |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-OutputSuffix
Text som läggs till i utdatasträngen. Strängen kan innehålla specialtecken som vagnretur (`r
), newline (`n
) och flik (`t
).
Typ: | String |
Alias: | os |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Property
Namnet på en egenskap eller ett egenskapsuttryck som projicerar pipelineobjektet till text.
Typ: | PSPropertyExpression |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Separator
Text eller tecken, till exempel ett kommatecken eller semikolon som infogas mellan texten för varje pipelineobjekt.
Typ: | String |
Position: | 1 |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-SingleQuote
Omsluter strängvärdet för varje pipelineobjekt med enkla citattecken.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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
.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |