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.