В PowerShell возвращается все незахваченный вывод внутри функции, а не только аргумент return
. Из документации :
В Windows PowerShell & reg; результаты каждого оператора возвращаются как выходные данные, даже без оператора, содержащего ключевое слово Return.
blockquote>Не имеет значения, будет ли функция выглядеть так:
function Foo { 'foo' }
или вот так:
function Foo { 'foo' return }
или вот так:
function Foo { return 'foo' }
он будет возвращать строку
foo
в любом случае.Чтобы предотвратить возврат результата, вы можете
- записать на хост:
Function a { Write-Host 'some text' $a = 4 return $a }
- фиксирует вывод в переменной:
Function a { $var = Write-Output 'some text' $a = 4 return $a }
- или перенаправляет вывод на
$null
:Function a { Write-Output 'some text' | Out-Null Write-Output 'some text' >$null $a = 4 return $a }