Sdílet prostřednictvím


Join-String

Kombinuje objekty z kanálu do jednoho řetězce.

Syntaxe

Default (Výchozí)

Join-String
    [[-Property] <PSPropertyExpression>]
    [[-Separator] <String>]
    [-OutputPrefix <String>]
    [-OutputSuffix <String>]
    [-UseCulture]
    [-InputObject <PSObject[]>]
    [<CommonParameters>]

SingleQuote

Join-String
    [[-Property] <PSPropertyExpression>]
    [[-Separator] <String>]
    [-OutputPrefix <String>]
    [-OutputSuffix <String>]
    [-SingleQuote]
    [-UseCulture]
    [-InputObject <PSObject[]>]
    [<CommonParameters>]

DoubleQuote

Join-String
    [[-Property] <PSPropertyExpression>]
    [[-Separator] <String>]
    [-OutputPrefix <String>]
    [-OutputSuffix <String>]
    [-DoubleQuote]
    [-UseCulture]
    [-InputObject <PSObject[]>]
    [<CommonParameters>]

Format

Join-String
    [[-Property] <PSPropertyExpression>]
    [[-Separator] <String>]
    [-OutputPrefix <String>]
    [-OutputSuffix <String>]
    [-FormatString <String>]
    [-UseCulture]
    [-InputObject <PSObject[]>]
    [<CommonParameters>]

Description

Rutina Join-String spojuje nebo kombinuje text z objektů kanálu do jednoho řetězce.

Pokud nejsou zadány žádné parametry, objekty kanálu se převedou na řetězec a spojí se s výchozím oddělovačem $OFS.

Poznámka:

Když nastavíte $OFS jeho hodnota se použije ke spojení polí při jejich převodu na řetězce, dokud proměnná nebude resetována na $null. Vzhledem k tomu, že použití $OFS může mít nežádoucí účinky jinde v kódu, je nejlepší místo toho použít parametr Oddělovač.

Zadáním názvu vlastnosti se hodnota vlastnosti převede na řetězec a spojí se do řetězce.

Místo názvu vlastnosti lze použít blok skriptu. Výsledek bloku skriptu se před spojením převede na řetězec a vytvoří výsledek. Může buď zkombinovat text vlastnosti objektu, nebo výsledek objektu, který byl převeden na řetězec.

Tato cmdlet byla představena v PowerShellu 6.2.

Příklady

Příklad 1: Připojení názvů adresářů

Tento příklad spojí názvy adresářů, zabalí výstup do dvojitých uvozovek a odděluje názvy adresářů čárkou a mezerou (, ). Výstup je objekt řetězce.

Get-ChildItem -Directory C:\ | Join-String -Property Name -DoubleQuote -Separator ', '
"PerfLogs", "Program Files", "Program Files (x86)", "Users", "Windows"

Get-ChildItem pomocí parametru Directory získá všechny názvy adresářů pro jednotku C:\. Objekty se odesílají do kanálu Join-String. Parametr Vlastnost určuje názvy adresářů. Parametr DoubleQuote zabalí názvy adresářů dvojitými uvozovkami. Parametr oddělovač určuje použití čárky a mezery (, ) k oddělení názvů adresářů.

Objekty Get-ChildItem jsou System.IO.DirectoryInfo a Join-String převede objekty na System.String.

Příklad 2: Použití podřetětědce vlastnosti pro připojení názvů adresářů

Tento příklad používá metodu podřetědce k získání prvních čtyř písmen názvů adresářů, zabalí výstup do jednoduchých uvozovek a odděluje názvy adresářů středníkem (;).

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

Get-ChildItem pomocí parametru Directory získá všechny názvy adresářů pro jednotku C:\. Objekty se odesílají do kanálu Join-String.

Blok skriptu parametru vlastnost používá automatickou proměnnou ($_) k určení názvu každého objektu podřetědce vlastnosti. Podřetětěr získá první čtyři písmena každého názvu adresáře. Podřetězce určuje počáteční a koncové pozice znaku. Parametr SingleQuote zabalí názvy adresářů do jednoduchých uvozovek. Parametr oddělovač určuje použití středníku (;) k oddělení názvů adresářů.

Další informace o automatických proměnných a podřetěžcích naleznete v tématu about_Automatic_Variables a podřetědce.

Příklad 3: Zobrazení výstupu spojení na samostatném řádku

Tento příklad spojí názvy služeb s každou službou na samostatném řádku a odsadí se tabulátorem.

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 používá parametr Name k určení služeb, které začínají se*. Hvězdička (*) je zástupný znak pro libovolný znak.

Objekty se odesílají do kanálu do Join-String, který používá Vlastnost parametr k určení názvů služeb. Parametr oddělovače určuje tři speciální znaky představující návrat na začátek řádku (`r), nový řádek (`n) a tabulátor (`t). OutputPrefix vloží popisek Services: s novým řádkem a tabulátorem před první řádek výstupu.

Další informace o speciálních znaznachech naleznete v tématu about_Special_Characters.

Příklad 4: Vytvoření definice třídy z objektu

Tento příklad vygeneruje definici třídy PowerShellu pomocí existujícího objektu jako šablony.

Tento vzorový kód používá k zmenšení délky řádků a zlepšení čitelnosti. Další informace naleznete v části s názvem 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
}

Parametry

-DoubleQuote

Zabalí řetězcovou hodnotu každého objektu kanálu do dvojitých uvozovek.

Vlastnosti parametru

Typ:SwitchParameter
Default value:False
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

DoubleQuote
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-FormatString

Určuje formátovací řetězec, který určuje, jak má být každý objekt kanálu formátován před jejich spojením. K reprezentaci aktuálního objektu použijte zástupný symbol {0}. Pokud potřebujete zachovat složené závorky ({}) ve formátovaný řetězec, můžete je utéct tak, že závorky ({{ a }}).

Další informace naleznete v String.Format metoda a složené formátování.

Vlastnosti parametru

Typ:String
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

Format
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-InputObject

Určuje text, který se má spojit. Zadejte proměnnou, která obsahuje text, nebo zadejte příkaz nebo výraz, který získá objekty pro spojení s řetězci.

Vlastnosti parametru

Typ:

PSObject[]

Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:True
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-OutputPrefix

Text vložený před výstupní řetězec. Řetězec může obsahovat speciální znaky, jako je návrat na začátek řádku (`r), nový řádek (`n) a tabulátor (`t).

Vlastnosti parametru

Typ:String
Default value:None
Podporuje zástupné znaky:False
DontShow:False
Aliasy:op

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-OutputSuffix

Text, který je připojený k výstupnímu řetězci. Řetězec může obsahovat speciální znaky, jako je návrat na začátek řádku (`r), nový řádek (`n) a tabulátor (`t).

Vlastnosti parametru

Typ:String
Default value:None
Podporuje zástupné znaky:False
DontShow:False
Aliasy:OS

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-Property

Název vlastnosti nebo výraz vlastnosti, který se má převést na text.

Vlastnosti parametru

Typ:PSPropertyExpression
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:0
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-Separator

Text nebo znaky, například čárka nebo středník vložený mezi text každého objektu kanálu.

Ve výchozím nastavení jsou objekty kanálu spojené bez oddělovače. Pokud je nastavena oddělovač výstupních polí proměnná předvoleb ($OFS), použije se tato hodnota, pokud není tento parametr zadán.

Poznámka:

Když nastavíte $OFS jeho hodnota se použije ke spojení polí při jejich převodu na řetězce, dokud proměnná nebude resetována na $null. Vzhledem k tomu, že použití $OFS může mít nežádoucí účinky jinde v kódu, je nejlepší místo toho použít parametr Oddělovač.

Vlastnosti parametru

Typ:String
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:1
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-SingleQuote

Zabalí řetězcovou hodnotu každého objektu kanálu do jednoduchých uvozovek.

Vlastnosti parametru

Typ:SwitchParameter
Default value:False
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

SingleQuote
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-UseCulture

Použije oddělovač seznamu pro aktuální kulturu jako oddělovač položek. K vyhledání oddělovače seznamu pro kulturu použijte následující příkaz: (Get-Culture).TextInfo.ListSeparator.

Vlastnosti parametru

Typ:SwitchParameter
Default value:False
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

CommonParameters

Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.

Vstupy

PSObject

Výstupy

String