먼저 PowerShell 함수는 캡처되지 않은 "출력"을 모두 반환합니다. 당신은 변수에 할당하여 출력을 캡처 할 수 있습니다 당신은 $null
로 리디렉션으로 출력을 무시할 수 있습니다 예 :
$arrayList.Add("hi") > $null
우리가 $로 리디렉션 때문이 아니라 0과 같은이 것 일반적으로 출력 뭔가 ("안녕하세요"추가 된 인덱스) null의 경우, 출력은 무시됩니다.
둘째, echo
은 해당 개체를 출력 스트림에 쓰는 "Write-Output"의 별칭 일뿐입니다.
이
Write-Output "blah"
return
그래서 함수 구현이 동일합니다 : return "blah"
은 동일합니다 단지 편의 당신이 그것을 고려하지 않고 호스트 콘솔에 대한 몇 가지 정보 "를 참조하십시오"하고 싶은 경우
function EchoReturnTest(){
Write-Output "afdsfadsf"
Write-Output "blah"
return
}
당신은 다음 매개 변수가없는 경우
function EchoReturnTest(){
Write-Host "afdsfadsf"
return "blah"
}
는 또한, 당신은 함수 이름 전자의 끝 부분에 괄호가 필요하지 않습니다 : 함수의 "출력"부분은 쓰기 호스트 예를 사용합니다. 지. function EchoReturnTest { return 'blah' }
.
그냥 추측하지만 STDOUT (즉, 어떤 에코가 출력되는지)과 반환 값이 같은 스트림으로 덤프되고있는 것처럼 보입니다. echo를 STDERR로 출력하도록 명령하여 이들을 강제로 분리시킬 수 있습니다 : echo "afdsfadsf"1> & 2; – mlathe