Share via


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 $OFSverknü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-Stringgesendet. 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-Stringgesendet.

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

Eingaben

PSObject

Ausgaben

String