Join-String

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

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

Met de Join-String cmdlet wordt tekst van pijplijnobjecten samengevoegd of gecombineerd tot één tekenreeks.

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

Notitie

Wanneer u de waarde ervan instelt $OFS , wordt gebruikt om matrices samen te voegen wanneer ze worden geconverteerd naar tekenreeksen totdat de variabele opnieuw wordt ingesteld $nullop . Omdat het gebruik $OFS van onbedoelde effecten ergens anders in uw code kan hebben, kunt u in plaats daarvan de parameter Scheidingsteken het beste 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 de pijplijn Join-Stringverzonden. Met de parameter Eigenschap worden de mapnamen opgegeven. 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 zijn 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 met 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 de pijplijn Join-Stringverzonden.

Het scriptblok Eigenschapsparameter maakt gebruik van automatische variabele ($_) om de subtekenreeks van de eigenschap Name van elk object op te geven. 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 subtekenreeksen voor 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 met om services op te geven die beginnen met se*. Het sterretje (*) is een jokerteken voor elk teken.

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

Zie about_Special_Characters voor 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_Splatting voor 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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FormatString

Hiermee geeft u een notatietekenreeks op die aangeeft hoe elk pijplijnobject moet worden opgemaakt voordat u deze samenvoegt. Gebruik de {0} tijdelijke aanduiding 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 opmaak voor meer informatie.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Required:False
Accept pipeline input:True
Accept wildcard characters: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
Aliases:op
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Aliases:os
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Property

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

Type:PSPropertyExpression
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 de voorkeursvariabele uitvoerveldscheidingsteken ($OFS) is ingesteld, wordt die waarde gebruikt, tenzij deze parameter is opgegeven.

Notitie

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

Type:String
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SingleQuote

Verpakt de tekenreekswaarde van elk pijplijnobject in enkele aanhalingstekens.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Invoerwaarden

PSObject

Uitvoerwaarden

String