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-String
verzonden. 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-String
verzonden.
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 |