Freigeben über


Join-String

Kombiniert Objekte aus der Pipeline in einer einzelnen Zeichenfolge.

Syntax

Default (Standardwert)

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>]

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.

Hinweis

Wenn Sie festlegen, $OFS ihr Wert verwendet wird, um Arrays zu verbinden, wenn sie in Zeichenfolgen konvertiert werden, bis die Variable auf $nullzurückgesetzt wird. Da die Verwendung von $OFS unbeabsichtigte Effekte an anderer Stelle im Code haben kann, ist es am besten, stattdessen den parameter Separator zu verwenden.

Durch Angeben eines Eigenschaftsnamens wird der Wert der Eigenschaft in eine Zeichenfolge konvertiert und mit einer Zeichenfolge verknüpft.

Anstelle eines Eigenschaftennamens kann ein Skriptblock verwendet werden. Das Ergebnis des Skriptblocks wird in eine Zeichenfolge konvertiert, bevor es verknüpft ist, um das Ergebnis zu bilden. Sie 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: Verzeichnisnamen beitreten

In diesem Beispiel werden Verzeichnisnamen verknüpft, die Ausgabe in doppelte Anführungszeichen umgebrochen und die Verzeichnisnamen durch komma und leer (, ) 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 Parameter Directory, um alle Verzeichnisnamen für das C:\ Laufwerk abzurufen. Die Objekte werden durch die Pipeline zu Join-Stringgesendet. Der parameter Property gibt die Verzeichnisnamen an. Der parameter DoubleQuote umschließt die Verzeichnisnamen durch doppelte Anführungszeichen. Der parameter Separator gibt an, dass zum Trennen der Verzeichnisnamen ein Komma und leerzeichen (, ) verwendet werden sollen.

Die Get-ChildItem Objekte sind System.IO.DirectoryInfo und Join-String die Objekte in System.String-konvertiert.

Beispiel 2: Verwenden einer Eigenschaftsunterzeichenfolge zum Verknüpfen von Verzeichnisnamen

In diesem Beispiel wird eine Teilzeichenfolgenmethode verwendet, um die ersten vier Buchstaben von Verzeichnisnamen abzurufen, die Ausgabe in einfache Anführungszeichen umgebrochen 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 Parameter Directory, um alle Verzeichnisnamen für das C:\ Laufwerk abzurufen. Die Objekte werden durch die Pipeline zu Join-Stringgesendet.

Der skriptblock Property parameter verwendet die automatische Variable ($_), um die Name Eigenschaftsunterzeichenfolge jedes Objekts anzugeben. Die Teilzeichenfolge ruft die ersten vier Buchstaben jedes Verzeichnisnamens ab. Die Teilzeichenfolge gibt die Anfangs- und Endpositionen des Zeichens an. Der SingleQuote Parameter umschließt die Verzeichnisnamen durch Einfache Anführungszeichen. Der parameter Separator gibt an, ein Semikolon (;) zum Trennen der Verzeichnisnamen zu verwenden.

Weitere Informationen zu automatischen Variablen und Teilzeichenfolgen finden Sie unter about_Automatic_Variables und Teilzeichenfolge.

Beispiel 3: Anzeigen der Verknüpfungsausgabe in einer separaten Zeile

In diesem Beispiel werden Dienstnamen mit jedem Dienst in einer separaten Zeile verknüpft und von einer Registerkarte eingezogen.

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 Parameter Name, um Dienste anzugeben, die mit se*beginnen. Das Sternchen (*) ist ein Wildcard für jedes Zeichen.

Die Objekte werden an Join-String gesendet, die den Parameter Property zum Angeben der Dienstnamen verwendet. Der parameter Separator gibt drei Sonderzeichen an, die einen Wagenrücklauf (`r), eine Neueline (`n) und tab (`t) darstellen. Die OutputPrefix- fügt eine Beschriftung Services: mit einer neuen Zeile und tab vor der ersten Ausgabezeile ein.

Weitere Informationen zu Sonderzeichen finden Sie unter about_Special_Characters.

Beispiel 4: Erstellen einer Klassendefinition aus einem Objekt

In diesem Beispiel wird eine PowerShell-Klassendefinition mithilfe eines vorhandenen Objekts als Vorlage generiert.

In diesem Codebeispiel wird das 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.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

DoubleQuote
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-FormatString

Gibt eine Formatzeichenfolge an, die angibt, wie jedes Pipelineobjekt vor dem Verknüpfen formatiert werden soll. Verwenden Sie den {0} Platzhalter, um das aktuelle Objekt darzustellen. Wenn Sie die geschweiften Klammern ({}) in der formatierten Zeichenfolge beibehalten müssen, können Sie diese escapen, indem Sie die geschweiften Klammern ({{ und }}) verdoppeln.

Weitere Informationen finden Sie in der String.Format--Methode und zusammengesetzten Formatierung.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

Format
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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 mit Zeichenfolgen verknüpft werden sollen.

Parametereigenschaften

Typ:

PSObject[]

Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-OutputPrefix

Text, der vor der Ausgabezeichenfolge eingefügt wird. Die Zeichenfolge kann Sonderzeichen wie Wagenrücklauf (`r), Zeilenumbruch (`n) und Tabstopp (`t) enthalten.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:op

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-OutputSuffix

Text, der an die Ausgabezeichenfolge angefügt wird. Die Zeichenfolge kann Sonderzeichen wie Wagenrücklauf (`r), Zeilenumbruch (`n) und Tabstopp (`t) enthalten.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:os

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Property

Der Name einer Eigenschaft oder eines Eigenschaftsausdrucks, der in Text konvertiert werden soll.

Parametereigenschaften

Typ:PSPropertyExpression
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:0
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Separator

Text oder Zeichen wie ein Komma oder Semikolon, das zwischen dem Text für jedes Pipelineobjekt eingefügt wird.

Standardmäßig werden die Pipelineobjekte ohne Trennzeichen verknüpft. Wenn die Ausgabefeldtrennzeichen Einstellungsvariable ($OFS) festgelegt ist, wird dieser Wert verwendet, es sei denn, dieser Parameter ist angegeben.

Hinweis

Wenn Sie festlegen, $OFS ihr Wert verwendet wird, um Arrays zu verbinden, wenn sie in Zeichenfolgen konvertiert werden, bis die Variable auf $nullzurückgesetzt wird. Da die Verwendung von $OFS unbeabsichtigte Effekte an anderer Stelle im Code haben kann, ist es am besten, stattdessen den parameter Separator zu verwenden.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:1
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-SingleQuote

Umschließt den Zeichenfolgenwert jedes Pipelineobjekts in einfache Anführungszeichen.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

SingleQuote
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-UseCulture

Verwendet das Listentrennzeichen für die aktuelle Kultur als Elementtrennzeichen. Um das Listentrennzeichen für eine Kultur zu finden, verwenden Sie den folgenden Befehl: (Get-Culture).TextInfo.ListSeparator.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

CommonParameters

Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.

Eingaben

PSObject

Ausgaben

String