Во-первых, функции PowerShell возвращают все незаписанные «выходные данные». Вы можете захватить вывод, присвоив переменную, и вы можете игнорировать вывод, перенаправив на $null
например ::
.
$arrayList.Add("hi") > $null
Это обычно выдает что-то вроде 0 (индекс, в который было добавлено "hi"), но поскольку мы перенаправили на $ null, вывод игнорируется.
Во-вторых, echo
это просто псевдоним «Write-Output», который записывает соответствующий объект в выходной поток. return "blah"
- это просто удобство, которое эквивалентно:
Write-Output "blah"
return
Итак, ваша реализация функции эквивалентна этому:
function EchoReturnTest(){
Write-Output "afdsfadsf"
Write-Output "blah"
return
}
Если вы хотите «увидеть» некоторую информацию на хост-консоли, не считая ее частью «вывода» функции, используйте Write-Host, например ::
function EchoReturnTest(){
Write-Host "afdsfadsf"
return "blah"
}
Кроме того, если у вас нет параметров, то вам не нужны парены в конце имени функции, например, function EchoReturnTest { return 'blah' }
.