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
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 $null
op . 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-String
verzonden. 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-String
verzonden.
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 |
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 {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 |
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 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 $null
op . 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 |
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 |