Wenn ich zwei Zeichenfolgen zu einem Dateipfad kombinieren möchte, verwende ich Folgendes Join-Path:
$path = Join-Path C: "Program Files"
Write-Host $path
Das druckt "C:\Program Files". Wenn ich dies jedoch für mehr als zwei Zeichenfolgen tun möchte:
$path = Join-Path C: "Program Files" "Microsoft Office"
Write-Host $path
PowerShell gibt einen Fehler aus:
Join-Pfad: Es kann kein Positionsparameter gefunden werden, der das Argument 'Microsoft Office' akzeptiert.
Unter D: \ users \ ma \ my_script.ps1: 1 char: 18
+ $ path = Join-Pfad <<<< C: "Programme" "Microsoft Office"
+ CategoryInfo: InvalidArgument: (:) [Join-Path] , ParameterBindingException
+ FullyQualifiedErrorId: PositionalParameterNotFound, Microsoft.PowerShell
.Commands.JoinPathCommand
Ich habe versucht, ein String-Array zu verwenden:
[string[]] $pieces = "C:", "Program Files", "Microsoft Office"
$path = Join-Path $pieces
Write-Host $path
PowerShell fordert mich jedoch auf, den untergeordneten Pfad einzugeben (da ich das -childpathArgument nicht angegeben habe ), z. B. "somepath", und erstellt dann drei Dateipfade.
C:\somepath
Program Files\somepath
Microsoft Office\somepath
was auch nicht richtig ist.