Dela via


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

Indata

PSObject

Utdata

String