Ответ 1
Во-первых, функции PowerShell возвращают весь незагруженный "вывод". Вы можете захватывать вывод, назначая переменной, и вы можете игнорировать вывод путем перенаправления на $null
например:
$arrayList.Add("hi") > $null
Это обычно выводит что-то вроде 0 (индекс, где добавлен "привет" ), но поскольку мы перенаправляемся на $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' }
.