Ответ шуфлера правильный. Другими словами: вместо передачи значений в Write-Output с использованием ФОРМЫ ARRAY FORM,
Write-Output "Parameters are:" $Year $Month $Day
или эквивалент несколькими вызовами Write-Output,
Write-Output "Parameters are:"
Write-Output $Year
Write-Output $Month
Write-Output $Day
Write-Output "Done."
сначала объедините свои компоненты в ПЕРЕМЕННУЮ СТРОКУ:
$msg="Parameters are: $Year $Month $Day"
Write-Output $msg
Это предотвратит промежуточные CRLF, вызванные многократным вызовом Write-Output (или ARRAY FORM), но, конечно, не подавит окончательный CRLF командлета Write-Output. Для этого вам придется написать свой собственный командлет, использовать один из других запутанных обходных путей, перечисленных здесь, или подождать, пока Microsoft решит поддержать -NoNewline
опцию Write-Output.
Ваше желание предоставить на консоль текстовый индикатор выполнения (например, «....») вместо записи в файл журнала также должно быть удовлетворено с помощью Write-Host. Вы можете выполнить и то, и другое, собрав текст сообщения в переменную для записи в журнал И используя Write-Host для отображения прогресса на консоли. Эту функциональность можно объединить в ваш собственный командлет для максимального повторного использования кода.