Я переписал ваш код, чтобы протестировать его, добавив путь к файлу в качестве параметра, но я не уверен, что он настроен на выполнение того, для чего вы собираетесь:
function isDailyCommSummaryExists()
{
param ($content,$filePath)
if(-Not([System.IO.File]::Exists("$filePath\DailyCommSummary.mai")))
{
$content | Out-File -FilePath "$filePath\test.txt" -Encoding ascii
}
else
{
$content | Out-File -FilePath "$filePath\test.txt" -Encoding ascii -Append
}
}
isDailyCommSummaryExists -content "hello" -filePath "c:\temp"
Это будет искать файл с именем DailyCommSummary.mai и, если его там нет, выведет "hello" в test.txt. Если DailyCommSummary.mai существует, он будет добавлять контент в DailyCommSummary.mai.
Это то поведение, которое вы намеревались?
Вы имеете в виду, что "$ filePath \ DailyCommSummary.mai" в качестве адресатов в выходном файле? В таком случае достаточно простого Out-File с параметром -append.
Редактировать: Основываясь на комментариях, я считаю, что проблема в том, что на вашем пути есть символы подстановки, поэтому это должно работать:
function isDailyCommSummaryExists()
{
param ($content,$filePath)
if(-Not([System.IO.File]::Exists("$filePath\DailyCommSummary.mai")))
{
$content | Out-File -LiteralPath "$filePath\test.txt" -Encoding ascii
}
else
{
$content | Out-File -LiteralPath "$filePath\test.txt" -Encoding ascii -Append
}
}
isDailyCommSummaryExists -content "hello" -filePath "C:\temp\AppData[CSRExtractQueue]\"