Join-String
Kombiniert Objekte aus der Pipeline in einer einzelnen Zeichenfolge.
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>]
Beschreibung
Das Join-String
Cmdlet verknüpft Oder kombiniert Text aus Pipelineobjekten in einer einzelnen Zeichenfolge.
Wenn keine Parameter angegeben werden, werden die Pipelineobjekte in eine Zeichenfolge konvertiert und mit dem Standardtrennzeichen $OFS
verknüpft.
Durch Angabe eines Eigenschaftsnamens wird der Wert der Eigenschaft in eine Zeichenfolge konvertiert und in eine Zeichenfolge eingebunden.
Anstelle eines Eigenschaftennamens kann ein Skriptblock verwendet werden. Das Ergebnis des Skriptblocks wird in eine Zeichenfolge konvertiert, bevor er verknüpft wird, um das Ergebnis zu bilden. Es kann entweder den Text der -Eigenschaft eines Objekts oder das Ergebnis des Objekts kombinieren, das in eine Zeichenfolge konvertiert wurde.
Dieses Cmdlet wurde in PowerShell 6.2 eingeführt.
Beispiele
Beispiel 1: Hinzufügen von Verzeichnisnamen
In diesem Beispiel werden Verzeichnisnamen verknüpft, die Ausgabe in doppelte Anführungszeichen eingeschlossen und die Verzeichnisnamen durch ein Komma und ein Leerzeichen (,
) getrennt. Die Ausgabe ist ein Zeichenfolgenobjekt.
Get-ChildItem -Directory C:\ | Join-String -Property Name -DoubleQuote -Separator ', '
"PerfLogs", "Program Files", "Program Files (x86)", "Users", "Windows"
Get-ChildItem
verwendet den Directory-Parameter , um alle Verzeichnisnamen für das C:\
Laufwerk abzurufen.
Die -Objekte werden in der Pipeline an Join-String
gesendet. Der Parameter Property gibt die Verzeichnisnamen an. Der DoubleQuote-Parameter umschließt die Verzeichnisnamen mit doppelten Anführungszeichen.
Der Parameter Separator gibt an, dass ein Komma und ein Leerzeichen (,
) verwendet werden sollen, um die Verzeichnisnamen zu trennen.
Die Get-ChildItem
Objekte sind System.IO.DirectoryInfo und Join-String
konvertiert die Objekte in System.String.
Beispiel 2: Verwenden einer Eigenschaftenteilzeichenfolge zum Einbinden von Verzeichnisnamen
In diesem Beispiel wird eine Teilzeichenfolgenmethode verwendet, um die ersten vier Buchstaben von Verzeichnisnamen abzurufen, die Ausgabe in einfache Anführungszeichen umschließt und die Verzeichnisnamen durch ein Semikolon (;
) getrennt.
Get-ChildItem -Directory C:\ | Join-String -Property {$_.Name.SubString(0,4)} -SingleQuote -Separator ';'
'Perf';'Prog';'Prog';'User';'Wind'
Get-ChildItem
verwendet den Directory-Parameter , um alle Verzeichnisnamen für das C:\
Laufwerk abzurufen.
Die -Objekte werden in der Pipeline an Join-String
gesendet.
Der Property-Parameterskriptblock verwendet die automatische Variable ($_
), um die Name-Eigenschaftsteilzeichenfolge jedes Objekts anzugeben. Die Teilzeichenfolge ruft die ersten vier Buchstaben jedes Verzeichnisnamens ab. Die Teilzeichenfolge gibt die Anfangs- und Endposition des Zeichens an. Der SingleQuote-Parameter umschließt die Verzeichnisnamen mit einfachen Anführungszeichen. Der Parameter Separator gibt an, dass ein Semikolon (;
) verwendet werden soll, um die Verzeichnisnamen zu trennen.
Weitere Informationen zu automatischen Variablen und Teilzeichenfolgen finden Sie unter about_Automatic_Variables und Teilzeichenfolge.
Beispiel 3: Anzeigen der Joinausgabe in einer separaten Zeile
In diesem Beispiel werden Dienstnamen mit jedem Dienst in einer separaten Zeile verknüpft und durch eine Registerkarte eingerückt.
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
verwendet den Name-Parameter mit, um Dienste anzugeben, die mit se*
beginnen. Das Sternchen (*
) ist ein Platzhalter für ein beliebiges Zeichen.
Die -Objekte werden an die Pipeline gesendet, die Join-String
den Property-Parameter verwendet, um die Dienstnamen anzugeben. Der Parameter Separator gibt drei Sonderzeichen an, die einen Wagenrücklauf (`r
), einen Zeilenumbruch (`n
) und eine Registerkarte (`t
) darstellen. OutputPrefix fügt eine Bezeichnung Services: mit einer neuen Zeile und Registerkarte vor der ersten Ausgabezeile ein.
Weitere Informationen zu Sonderzeichen finden Sie unter about_Special_Characters.
Beispiel 4: Create einer Klassendefinition aus einem Objekt
In diesem Beispiel wird eine PowerShell-Klassendefinition mithilfe eines vorhandenen Objekts als Vorlage generiert.
In diesem Codebeispiel wird splatting verwendet, um die Zeilenlänge zu verringern und die Lesbarkeit zu verbessern. Weitere Informationen finden Sie unter 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
}
Parameter
-DoubleQuote
Umschließt den Zeichenfolgenwert jedes Pipelineobjekts in doppelte Anführungszeichen.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FormatString
Eine Formatzeichenfolge, die angibt, wie die einzelnen Elemente formatiert werden sollen.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Gibt den text an, der verknüpft werden soll. Geben Sie eine Variable ein, die den Text enthält, oder geben Sie einen Befehl oder Ausdruck ein, der die Objekte abruft, die in Zeichenfolgen verknüpft werden sollen.
Type: | PSObject[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-OutputPrefix
Text, der vor der Ausgabezeichenfolge eingefügt wird. Die Zeichenfolge kann Sonderzeichen wie Wagenrücklauf (`r
), Zeilenumbruch (`n
) und Tabulatorzeichen (`t
) enthalten.
Type: | String |
Aliases: | op |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OutputSuffix
Text, der an die Ausgabezeichenfolge angefügt wird. Die Zeichenfolge kann Sonderzeichen wie Wagenrücklauf (`r
), Zeilenumbruch (`n
) und Tabulatorzeichen (`t
) enthalten.
Type: | String |
Aliases: | os |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Property
Der Name einer Eigenschaft oder eines Eigenschaftsausdrucks, der das Pipelineobjekt in Text projiziert.
Type: | PSPropertyExpression |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Separator
Text oder Zeichen wie ein Komma oder Semikolon, das zwischen dem Text für jedes Pipelineobjekt eingefügt wird.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SingleQuote
Umschließt den Zeichenfolgenwert jedes Pipelineobjekts in einfache Anführungszeichen.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseCulture
Verwendet das Listentrennzeichen für die aktuelle Kultur als Elementtrennzeichen. Verwenden Sie den folgenden Befehl, um das Listentrennzeichen für eine Kultur zu suchen: (Get-Culture).TextInfo.ListSeparator
.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |