Wenn ich zwei Strings in einen Dateipfad kombinieren wollen, verwende ich join-path
wie folgt aus:Wie verwende ich Join-Pfad, um mehr als zwei Zeichenfolgen in einen Dateipfad zu kombinieren?
$path = join-path C: "Program Files"
write-host $path
das druckt C:\Program Files"
. Wenn ich dies allerdings für mehr als zwei Strings tun:
$path = join-path C: "Program Files" "Microsoft Office"
write-host $path
Powershell wirft einen Fehler:
Join-Path : A positional parameter cannot be found that accepts argument 'Micro
soft Office'.
At D:\users\ma\my_script.ps1:1 char:18
+ $path = join-path <<<< C: "Program Files" "Microsoft Office"
+ CategoryInfo : InvalidArgument: (:) [Join-Path], ParameterBindi
ngException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell
.Commands.JoinPathCommand
Ich habe versucht, ein String-Array mit:
[string[]] $pieces = "C:", "Program Files", "Microsoft Office"
$path = join-path $pieces
write-host $path
aber Powershell fordert mich um den Childpath einzugeben (da ich das Argument -childpath
nicht angegeben habe), z „Somepath“, und erstellt dann drei Dateien Pfade,
C:\somepath
Program Files\somepath
Microsoft Office\somepath
was auch nicht richtig ist.
Sicherlich die prägnanteste Form, und behandelt Pfadtrennzeichen und nachfolgende/führende Schrägstriche auf Pfadfragmente ordnungsgemäß, die die aktuelle akzeptierte Antwort (grundlegende Zeichenfolge-Verkettung) nicht tut. –
Für die Ausführung oben genannten Befehl in meiner Powershell ise bekommen diesen Fehler -Cann nicht finden eine Überladung für "Kombinieren" und die Anzahl der Argumente: "3". Bei Zeile: 1 Zeichen: 19 + [io.path] :: kombinieren <<<< ('c: \', 'foo', 'bar') + KategorieInfo: NotSpecified: (:) [], MethodException + FullyQualifiedErrorId: MethodCountCouldNotFindBest – Aamol
@Aamol Welche CLR-Version wird ausgeführt ('$ PSVersionTable')? Funktioniert '[io.path] :: combine ([string []] ('c: \', 'foo', 'bar'))? – mtman