Megosztás a következőn keresztül:


Join-String

A folyamat objektumait egyetlen sztringbe egyesíti.

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

A Join-String parancsmag a folyamatobjektumokból származó szöveget egyetlen sztringbe illeszti vagy egyesíti.

Ha nincsenek megadva paraméterek, a folyamatobjektumok sztringgé alakulnak, és csatlakoznak az alapértelmezett elválasztóhoz $OFS.

Feljegyzés

Ha beállítja $OFS az értékét, a rendszer a tömbök összekapcsolására használja, amikor sztringekké konvertálják őket, amíg a változó vissza nem áll $null. Mivel a használatnak $OFS máshol is lehetnek szándékolt hatásai a kódban, célszerű inkább az Elválasztó paramétert használni.

A tulajdonságnév megadásával a tulajdonság értéke sztringgé alakul, és sztringgé alakul.

Tulajdonságnév helyett szkriptblokk használható. A szkriptblokk eredménye sztringgé lesz konvertálva, mielőtt hozzá lett volna fűzve az eredmény létrehozásához. Kombinálhatja egy objektum tulajdonságának szövegét vagy a sztringgé konvertált objektum eredményét.

Ez a parancsmag a PowerShell 6.2-ben lett bevezetve.

Példák

1. példa: Könyvtárnevek csatlakoztatása

Ez a példa összekapcsolja a címtárneveket, dupla idézőjelekbe burkolja a kimenetet, és vesszővel és szóközzel (, ) elválasztja a címtárneveket. A kimenet egy sztringobjektum.

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

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

Get-ChildItemA Címtár paraméter használatával lekérheti a meghajtó összes könyvtárnevétC:\. A rendszer elküldi az objektumokat a folyamatnak Join-String. A Tulajdonság paraméter megadja a címtárneveket. A DoubleQuote paraméter dupla idézőjelekkel burkolja a címtárneveket. Az Elválasztó paraméter vesszővel és szóközzel (, ) választja el a címtárneveket.

Az Get-ChildItem objektumok a System.IO.DirectoryInfo, és Join-String az objektumokat System.Stringre konvertálják.

2. példa: A címtárnevek összekapcsolásához használjon tulajdonságrészt

Ez a példa egy alstring metódust használ a címtárnevek első négy betűjének lekéréséhez, a kimenetet egy idézőjelbe burkolja, és pontosvesszővel (;pontosvesszővel) elválasztja a címtárneveket.

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

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

Get-ChildItemA Címtár paraméter használatával lekérheti a meghajtó összes könyvtárnevétC:\. A rendszer elküldi az objektumokat a folyamatnak Join-String.

A tulajdonságparaméter szkriptblokkja automatikus változót ($_) használ az egyes objektumok Névtulajdonság-részsztringjének megadásához. Az alsztring minden könyvtárnév első négy betűje lesz. Az alsztring határozza meg a karakter kezdő és záró pozícióit. A SingleQuote paraméter egy idézőjelekkel burkolja a címtárneveket. Az Elválasztó paraméter pontosvesszővel (;) választja el a címtárneveket.

Az automatikus változókkal és részszúrásokkal kapcsolatos további információkért lásd: about_Automatic_Variables és substring.

3. példa: Illesztés kimenetének megjelenítése külön sorban

Ez a példa a szolgáltatásneveket az egyes szolgáltatásokhoz egy külön sorba illeszti, és behúzza egy lapra.

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 A Név paraméterrel adja meg a következővel se*kezdődő szolgáltatásokat: A csillag (*) bármely karakter helyettesítő karaktere.

A rendszer elküldi az objektumokat a folyamatnak Join-String , amely a Tulajdonság paramétert használja a szolgáltatásnevek megadásához. Az Elválasztó paraméter három speciális karaktert ad meg, amelyek a kocsi visszatérését (`r), az új vonalat (`n) és a tabulátort (`t) jelölik. Az OutputPrefix egy új sort és tabulátort tartalmazó címkét Services: szúr be az első kimeneti sor elé.

További információ a speciális karakterekről: about_Special_Characters.

4. példa: Osztálydefiníció létrehozása objektumból

Ez a példa egy PowerShell-osztálydefiníciót hoz létre egy meglévő objektum sablonként való használatával.

Ez a kódminta splatting használatával csökkenti a vonal hosszát és javítja az olvashatóságot. További információ: 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
}

Paraméterek

-DoubleQuote

Az egyes folyamatobjektumok sztringértékét dupla idézőjelek közé csomagolja.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:False
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-FormatString

Egy formázási sztringet ad meg, amely meghatározza, hogy az egyes folyamatobjektumok hogyan legyenek formázva a csatlakozás előtt. Az aktuális objektumot a {0} helyőrző használatával jelölheti. Ha meg kell tartania a kapcsos zárójeleket ({}) a formázott sztringben, a kapcsos kapcsos zárójelek ({{ és }}) duplálásával elkerülheti őket.

További információ: String.Format metódus és összetett formázás.

Típus:String
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-InputObject

Megadja az illesztendő szöveget. Írjon be egy olyan változót, amely tartalmazza a szöveget, vagy írjon be egy parancsot vagy kifejezést, amely lekéri az objektumokat, hogy sztringekké csatlakozzanak.

Típus:PSObject[]
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:True
Helyettesítő karakterek elfogadása:False

-OutputPrefix

A kimeneti sztring elé beszúrt szöveg. A sztring tartalmazhat speciális karaktereket, például kocsivissza (`r), newline (`n) és tab (`t).

Típus:String
Aliasok:op
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-OutputSuffix

A kimeneti sztringhez hozzáfűzött szöveg. A sztring tartalmazhat speciális karaktereket, például kocsivissza (`r), newline (`n) és tab (`t).

Típus:String
Aliasok:os
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-Property

A szöveggé konvertálandó tulajdonság vagy tulajdonságkifejezés neve.

Típus:PSPropertyExpression
Position:0
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-Separator

Az egyes folyamatobjektumok szövege közé beszúrt szöveg vagy karakterek, például vessző vagy pontosvessző.

Alapértelmezés szerint a folyamatobjektumok elválasztó nélkül csatlakoznak. Ha a Kimeneti mező elválasztó beállítási változója ($OFS) be van állítva, a rendszer ezt az értéket használja, hacsak nincs megadva ez a paraméter.

Feljegyzés

Ha beállítja $OFS az értékét, a rendszer a tömbök összekapcsolására használja, amikor sztringekké konvertálják őket, amíg a változó vissza nem áll $null. Mivel a használatnak $OFS máshol is lehetnek szándékolt hatásai a kódban, célszerű inkább az Elválasztó paramétert használni.

Típus:String
Position:1
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-SingleQuote

Az egyes folyamatobjektumok sztringértékét egyetlen idézőjelbe csomagolja.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:False
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-UseCulture

Az aktuális kultúra listaelválasztót használja elválasztó elemként. Egy kultúra listaelválasztójának megkereséséhez használja a következő parancsot: (Get-Culture).TextInfo.ListSeparator.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:False
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

Bevitelek

PSObject

Kimenetek

String