Jeśli chcę połączyć dwa ciągi w ścieżkę do pliku, używam w Join-Path
ten sposób:
$path = Join-Path C: "Program Files"
Write-Host $path
To drukuje "C:\Program Files"
. Jeśli jednak chcę to zrobić dla więcej niż dwóch ciągów:
$path = Join-Path C: "Program Files" "Microsoft Office"
Write-Host $path
PowerShell zgłasza błąd:
Join-Path: Nie można znaleźć parametru pozycyjnego, który akceptuje argument „Microsoft Office”.
W D: \ users \ ma \ my_script.ps1: 1 char: 18
+ $ path = join-path <<<< C: "Program Files" "Microsoft Office"
+ CategoryInfo: InvalidArgument: (:) [Join-Path] , ParameterBindingException
+ FullyQualifiedErrorId: PositionalParameterNotFound, Microsoft.PowerShell
.Commands.JoinPathCommand
Próbowałem użyć tablicy ciągów:
[string[]] $pieces = "C:", "Program Files", "Microsoft Office"
$path = Join-Path $pieces
Write-Host $path
Ale PowerShell prosi mnie o wpisanie ścieżki potomnej (ponieważ nie podałem -childpath
argumentu), np. „Somepath”, a następnie tworzy trzy ścieżki do plików,
C:\somepath
Program Files\somepath
Microsoft Office\somepath
co też nie jest właściwe.