Delen via


Join-String

Hiermee worden objecten uit de pijplijn gecombineerd tot één tekenreeks.

Syntaxis

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

De Join-String cmdlet joins, of combineert tekst van pijplijnobjecten in één tekenreeks.

Als er geen parameters zijn opgegeven, worden de pijplijnobjecten geconverteerd naar een tekenreeks en gekoppeld aan het standaardscheidingsteken $OFS.

Notitie

Wanneer u $OFS de waarde ervan instelt om matrices samen te voegen wanneer ze worden geconverteerd naar tekenreeksen totdat de variabele opnieuw wordt ingesteld op $null. Omdat het gebruik van $OFS onbedoelde effecten elders in uw code kan hebben, kunt u in plaats daarvan het beste de parameter Scheidingsteken gebruiken.

Door een eigenschapsnaam op te geven, wordt de waarde van de eigenschap geconverteerd naar een tekenreeks en samengevoegd in een tekenreeks.

In plaats van een eigenschapsnaam kan een scriptblok worden gebruikt. Het resultaat van het scriptblok wordt geconverteerd naar een tekenreeks voordat het wordt samengevoegd om het resultaat te vormen. Het kan de tekst van de eigenschap van een object of het resultaat van het object dat is geconverteerd naar een tekenreeks combineren.

Deze cmdlet is geïntroduceerd in PowerShell 6.2.

Voorbeelden

Voorbeeld 1: Mapnamen toevoegen

In dit voorbeeld worden mapnamen samengevoegd, worden de uitvoer tussen dubbele aanhalingstekens verpakt en worden de mapnamen gescheiden met een komma en spatie (, ). De uitvoer is een tekenreeksobject.

Get-ChildItem -Directory C:\ | Join-String -Property Name -DoubleQuote -Separator ', '

"PerfLogs", "Program Files", "Program Files (x86)", "Users", "Windows"

Get-ChildItem gebruikt de parameter Directory om alle mapnamen voor het C:\-station op te halen. De objecten worden naar Join-Stringverzonden. De parameter eigenschap geeft de mapnamen op. De parameter DoubleQuote verpakt de mapnamen met dubbele aanhalingstekens. De parameter Scheidingsteken specificeert het gebruik van een komma en spatie (, ) om de mapnamen te scheiden.

De Get-ChildItem-objecten worden System.IO.DirectoryInfo en Join-String converteert de objecten naar System.String.

Voorbeeld 2: Een subtekenreeks van een eigenschap gebruiken om mapnamen toe te voegen

In dit voorbeeld wordt een subtekenreeksmethode gebruikt om de eerste vier letters mapnamen op te halen, de uitvoer tussen enkele aanhalingstekens te verpakken en de mapnamen te scheiden met een puntkomma (;).

Get-ChildItem -Directory C:\ | Join-String -Property {$_.Name.SubString(0,4)} -SingleQuote -Separator ';'

'Perf';'Prog';'Prog';'User';'Wind'

Get-ChildItem gebruikt de parameter Directory om alle mapnamen voor het C:\-station op te halen. De objecten worden naar Join-Stringverzonden.

In het eigenschapsblok parameterscript wordt gebruikgemaakt van automatische variabele ($_) om de subtekenreeks naam van elk object op te geven eigenschap. De subtekenreeks krijgt de eerste vier letters van elke mapnaam. Met de subtekenreeks geeft u de begin- en eindpositie van het teken op. De parameter SingleQuote verpakt de mapnamen met enkele aanhalingstekens. De parameter Scheidingsteken geeft aan dat een puntkomma (;) moet worden gebruikt om de mapnamen te scheiden.

Zie about_Automatic_Variables en subtekenreeksenvoor meer informatie over automatische variabelen en subtekenreeksen.

Voorbeeld 3: Uitvoer van join weergeven op een afzonderlijke regel

In dit voorbeeld worden servicenamen samengevoegd met elke service op een afzonderlijke regel en ingesprongen door een tabblad.

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 gebruikt de parameter Name om services op te geven die beginnen met se*. Het sterretje (*) is een jokerteken voor elk teken.

De objecten worden naar de pijplijn verzonden naar Join-String die gebruikmaakt van de parameter Eigenschap om de servicenamen op te geven. De parameter Scheidingsteken geeft drie speciale tekens op die een regelterugloop (`r), newline (`n) en tab (`t) vertegenwoordigen. De OutputPrefix voegt een label in Services: met een nieuwe regel en tab vóór de eerste regel uitvoer.

Zie about_Special_Charactersvoor meer informatie over speciale tekens.

Voorbeeld 4: Een klassedefinitie maken op basis van een object

In dit voorbeeld wordt een PowerShell-klassedefinitie gegenereerd met behulp van een bestaand object als sjabloon.

In dit codevoorbeeld wordt splatting gebruikt om de lijnlengte te verminderen en de leesbaarheid te verbeteren. Zie about_Splattingvoor meer informatie.

$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
}

Parameters

-DoubleQuote

Verpakt de tekenreekswaarde van elk pijplijnobject tussen dubbele aanhalingstekens.

Type:SwitchParameter
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-FormatString

Hiermee geeft u een notatietekenreeks op die aangeeft hoe elk pijplijnobject moet worden opgemaakt voordat u deze samenvoegt. Gebruik de tijdelijke aanduiding {0} om het huidige object weer te geven. Als u de accolades ({}) in de opgemaakte tekenreeks wilt behouden, kunt u deze ontsnappen door de accolades ({{ en }}) te verdubbelen.

Zie de methode String.Format en Samengestelde opmaakvoor meer informatie.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-InputObject

Hiermee geeft u de tekst die moet worden samengevoegd. Voer een variabele in die de tekst bevat of typ een opdracht of expressie waarmee de objecten worden samengevoegd in tekenreeksen.

Type:PSObject[]
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-OutputPrefix

Tekst die vóór de uitvoertekenreeks wordt ingevoegd. De tekenreeks kan speciale tekens bevatten, zoals regelterugloop (`r), newline (`n) en tab (`t).

Type:String
Aliassen:op
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-OutputSuffix

Tekst die wordt toegevoegd aan de uitvoertekenreeks. De tekenreeks kan speciale tekens bevatten, zoals regelterugloop (`r), newline (`n) en tab (`t).

Type:String
Aliassen:os
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Property

De naam van een eigenschap, of een eigenschapsexpressie, die moet worden geconverteerd naar tekst.

Type:PSPropertyExpression
Position:0
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Separator

Tekst of tekens zoals een komma of puntkomma die wordt ingevoegd tussen de tekst voor elk pijplijnobject.

De pijplijnobjecten worden standaard gekoppeld zonder scheidingsteken. Als het veldscheidingsteken voor uitvoer voorkeursvariabele ($OFS) is ingesteld, wordt die waarde gebruikt, tenzij deze parameter is opgegeven.

Notitie

Wanneer u $OFS de waarde ervan instelt om matrices samen te voegen wanneer ze worden geconverteerd naar tekenreeksen totdat de variabele opnieuw wordt ingesteld op $null. Omdat het gebruik van $OFS onbedoelde effecten elders in uw code kan hebben, kunt u in plaats daarvan het beste de parameter Scheidingsteken gebruiken.

Type:String
Position:1
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-SingleQuote

Verpakt de tekenreekswaarde van elk pijplijnobject in enkele aanhalingstekens.

Type:SwitchParameter
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-UseCulture

Hiermee gebruikt u het lijstscheidingsteken voor de huidige cultuur als het scheidingsteken voor items. Gebruik de volgende opdracht om het lijstscheidingsteken voor een cultuur te vinden: (Get-Culture).TextInfo.ListSeparator.

Type:SwitchParameter
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

Invoerwaarden

Uitvoerwaarden