Поскольку вы не определяете полный путь в переменной $ResultFolder
, он будет расширен с использованием текущего рабочего каталога.
Просто посмотрите на нужный вам путь:
"C:\Users\FrancescoM\Desktop\CSV\Results\" + $Server + " $DateTime.xlsx"
и полученный путь, используя частичную переменную $ ResultFolder:
C:\Users\FrancescoM\Documents\Results\0DC80000
Поскольку вы хотитевыходной файл в папке на рабочем столе, установите $output
на
$output = Join-Path $([Environment]::GetFolderPath("Desktop")) "CSV\Results\$Server $DateTime.xlsx"
РЕДАКТИРОВАТЬ Из вашего последнего комментария я понимаю, что вы хотитевыводится в подпапке «Results», которая находится внутри папки, в которой находится сам скрипт. В этом случае сделайте следующее:
# get the folder this script is running from
$ScriptFolder = if ($PSScriptRoot) { $PSScriptRoot } else { Split-Path $MyInvocation.MyCommand.Path }
# the following paths are relative to the path this script is in
$QueriesFolder = Join-Path -Path $ScriptFolder -ChildPath 'Queries'
$ResultFolder = Join-Path -Path $ScriptFolder -ChildPath 'Results'
# make sure the 'Results' folder exists; create if not
if (!(Test-Path -Path $ResultFolder -PathType Container)) {
New-Item -Path $ResultFolder -ItemType Directory | Out-Null
}
Затем, когда придет время сохранить файл xlsx, создайтеполный путь и имя файла, используя:
$output = Join-Path -Path $ResultFolder -ChildPath "$Server $DateTime.xlsx"
$xlsx.SaveAs($output)
PS Я советую использовать командлет Join-Path
для объединения путей к файлам или использовать [System.IO.Path]::Combine()
вместо объединения путей, как вы делаете этострока: $oresults | export-csv $ResultFolder$BaseNameOnly.csv
.Использование последнего может привести к непредвиденным путям, если вы когда-нибудь забудете добавить к первой части пути обратную косую черту.
PS2 Excel имеет собственный выходной путь по умолчанию, установленный в Tools->Options-> General-> Default File Location и не имеет представления об относительном пути для скрипта.Вот почему вы должны сохранить, используя полный путь и имя файла.