На этот раз пишу функцию на PowerShell с нуля, а не разбираю чужую, и она ведёт себя так, что объяснить не получается. Она должна вернуть один путь. Возвращает массив.
function Get-ReportPath {
$names = [System.Collections.ArrayList]::new()
foreach ($f in Get-ChildItem -Filter *.xlsx) {
$names.Add($f.Name)
}
Write-Verbose "found $($names.Count) workbooks"
Join-Path $PWD 'report.xlsx'
}
$path = Get-ReportPath
$path.GetType().Name # Object[]
Когда в папке три книги, в $path оказывается четыре значения. Последнее - нужный путь. Первые три - 0, 1 и 2 (похоже на счётчик, которого в коде нет, и на него пришлось долго смотреть). Откуда эти числа и как обычно не дают вспомогательному списку утечь в результат?