Подразумевается, что аргумент, передаваемый параметру -folder
(который представлен внутри вашей функции как переменная параметра $folder
), представляет собой массив путей к папкам, а не один .
Поэтому решение состоит в том, чтобы при вызове функции DownloadFile
вы пропускали путь к папке single ; Например:
DownloadFile -folder D:\folder -version 2
# With *positional* parameter binding:
DownloadFile D:\folder 2
Поскольку Join-Path
принимает массив путей в качестве аргумента -Path
, он выводит , кратное пути при задании массива; Например:
PS> $folder = 'c:\abc', 'c:\def'; Join-Path -Path $folder -ChildPath file.txt
c:\abc\file.txt
c:\def\file.txt
Передача массива Write-Host
неявно stringizes it, что означает создание одной строки, состоящей из элементов массива, объединенных пробелами:
PS> $folder = 'c:\abc', 'c:\def'; Write-Host $folder
c:\abc c:\def
(Обратите внимание, что это отличается от неявного вывода / вывода через Write-Output
, который печатает каждый элемент массива в отдельной строке; также неявный вывод / Write-Output
записывает в pipe , то есть они выводят data для последующей обработки, тогда как Write-Host
записывает строки на дисплей ).