Zunächst geben PowerShell-Funktionen alle nicht erfassten "Ausgaben" zurück. Sie können die Ausgabe erfassen, indem einer Variablen zugewiesen und Sie können $null
zB Ausgabe ignorieren, indem Umleitung:
$arrayList.Add("hi") > $null
Dies würde normalerweise Ausgabe etwas wie 0 (der Index, in dem „hallo“ hinzugefügt wurde), sondern weil wir zu $ umgeleitet Null, die Ausgabe wird ignoriert.
Zweitens ist echo
nur ein Alias für "Write-Output", der das entsprechende Objekt in den Ausgabestrom schreibt. return "blah"
ist nur eine Bequemlichkeit, die äquivalent ist:
Write-Output "blah"
return
So Ihre Funktion Umsetzung dieses entspricht:
function EchoReturnTest(){
Write-Output "afdsfadsf"
Write-Output "blah"
return
}
Wenn Sie einige Informationen über die Host-Konsole zu „sehen“ wollen, ohne es in Betracht gezogen werden Teil des „Ausgangs“ eine Funktion verwenden Sie Write-Host zB:
function EchoReturnTest(){
Write-Host "afdsfadsf"
return "blah"
}
auch wenn Sie keine Parameter haben, dann müssen Sie nicht über die Pars am Ende des Funktionsnamen e. G. function EchoReturnTest { return 'blah' }
.
nur eine Vermutung, aber es sieht aus wie STDOUT (dh welches Echo wird gedruckt) und der Rückgabewert werden in den gleichen Strom geworfen. Sie könnten sie in der Lage sein, sie zu trennen, indem Sie das Echo an STDERR ausgeben lassen: echo "afdsfadsf" 1> & 2; – mlathe