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