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
-Pathangehä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-Pathstatt String-Konkatenation verwenden -
Ab PowerShell 6 kann fĂźr mehrere Segmente
-AdditionalChildPathverwendet werden. -
Kombination mit
Test-PathfĂź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.