Skip to main content

Join-Path

Das Cmdlet Join-Path kombiniert mehrere Pfadsegmente zu einem gĂźltigen Dateisystempfad.

Es wird verwendet, um:

  • Pfade plattformunabhängig zusammenzusetzen

  • manuelles Hantieren mit Trennzeichen (\ oder /) zu vermeiden

  • Fehler durch doppelte oder fehlende Separatoren zu verhindern


🔧 Syntax

    Join-Path [-Path] <String> [-ChildPath] <String> [[-AdditionalChildPath] <String[]>] [<CommonParameters>]

-Path

  • Typ: String

  • Pflicht: Ja

  • Basispfad (z. B. Verzeichnis)

-ChildPath

  • Typ: String

  • Pflicht: Ja

  • Pfadsegment, das an -Path angehängt wird

    Join-Path -Path "C:\Temp" -ChildPath "Datei.txt"

-AdditionalChildPath

VerfĂźgbar ab: PowerShell 6+

  • Typ: String[]

  • Pflicht: Nein

  • Weitere Pfadsegmente, die nacheinander angehängt werden

    Join-Path -Path "C:\Temp" -ChildPath "Logs" -AdditionalChildPath "2026","April"

⚠️ Hinweise zur Verwendung

  • Trennzeichen werden automatisch korrekt gesetzt (kein manuelles \ nĂśtig)

  • Funktioniert providerĂźbergreifend (z. B. Registry, Zertifikate)

  • Mehrere Segmente werden sauber zusammengefĂźhrt

  • Bestehende Trennzeichen im Input werden berĂźcksichtigt (keine doppelten \\)


📊 Verhalten

Eigenschaft Beschreibung
Plattformabhängigkeit Berßcksichtigt das jeweilige Dateisystem
RĂźckgabewert String (zusammengesetzter Pfad)
Validierung Keine ExistenzprĂźfung des Pfades
Separator-Handling Automatisch korrekt

🧪 Beispiele

Einfaches ZusammenfĂźgen

Join-Path -Path "C:\Temp" -ChildPath "Datei.txt"

Ergebnis: C:\Temp\Datei.txt


Mehrere Segmente

Join-Path -Path "C:\Temp" -ChildPath "Logs" -AdditionalChildPath "2026","April"

Ergebnis: C:\Temp\Logs\2026\April


Mit Variablen

$base = "C:\Temp"
$file = "report.txt"

Join-Path -Path $base -ChildPath $file

Ergebnis: C:\Temp\report.txt


Provider-unabhängig (z. B. Registry)

Join-Path -Path "HKCU:\Software" -ChildPath "Microsoft"

⚙️ Typische Anwendungsfälle

  • Dynamische Dateipfade erstellen

  • Arbeiten mit temporären Verzeichnissen

  • Plattformunabhängige Skripte schreiben

  • Zusammenbau von Registry-Pfaden


❗ Alternativen / Ergänzungen

String-Konkatenation

# ❌ Fehleranfällig
"C:\Temp\" + "Datei.txt"
  • Fehleranfällig bei fehlenden oder doppelten Trennzeichen

  • Nicht plattformunabhängig


[System.IO.Path]::Combine()

[System.IO.Path]::Combine("C:\Temp", "Datei.txt")

Unterschiede:

  • .NET-Methode, nicht PowerShell-spezifisch

  • Keine Provider-UnterstĂźtzung (nur Dateisystem)

  • Kein Support fĂźr CommonParameters


🧠 Best Practices

  • Immer Join-Path statt String-Konkatenation verwenden

  • Ab PowerShell 6 kann fĂźr mehrere Segmente -AdditionalChildPath verwendet werden.

  • Kombination mit Test-Path fĂźr ExistenzprĂźfung

  • Variablen statt Hardcoding verwenden


Wenn du Pfade immer noch per String zusammenklebst, dann sabotierst du dich halt selbst mit Ansage. Funktioniert kurz, bricht später, und dann suchst du den Fehler wie ein Detektiv ohne Kaffee. Nimm einfach Join-Path und erspar dir das Drama.