Если я хочу объединить две строки в путь к файлу, я использую Join-Path
вот так:
$path = Join-Path C: "Program Files"
Write-Host $path
Это печатает "C:\Program Files"
. Если я хочу сделать это более чем для двух строк:
$path = Join-Path C: "Program Files" "Microsoft Office"
Write-Host $path
PowerShell выдает ошибку:
Join-Path: не может быть найден позиционный параметр, который принимает аргумент «Microsoft Office».
В 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
Я пробовал использовать строковый массив:
[string[]] $pieces = "C:", "Program Files", "Microsoft Office"
$path = Join-Path $pieces
Write-Host $path
Но PowerShell предлагает мне ввести дочерний путь (поскольку я не указал -childpath
аргумент), например, «somepath», а затем создает три пути к файлам,
C:\somepath
Program Files\somepath
Microsoft Office\somepath
что тоже неправильно.