2012-07-31 111 views
2

我正在写一个powershell函数,并且我希望它返回一个布尔值。问题是,powershell将返回任何在管道中的东西,而不仅仅是返回语句中明确包含的内容。Powershell返回多个值

请考虑以下代码。

function getTrue(){ 
    $testVariable="test" 
    $test 
    return $true 
} 

$answer=getTrue 

Write-host $answer 

此代码的输出是

test True 

这将返回一个System.Object []。我想强制返回值是一个System.Boolean。

如果我添加写主机,此代码正常工作。

function getTrue(){ 
    $testVariable="test" 
    Write-Host $test 
    return $true 
} 

唯一的问题是,我取决于功能是其他人在写作(我不能修改的话),我不能gaurantee他们使用的写主机,而不只是离开线上的变量本身。

反正有强制功能只返回我想要的值吗?

回答

5

只需使用out-null压制意外返回:

function getTrue(){ $test="test"; $test | out-null; return $true; } 
$answer=getTrue 
Write-Host $answer 

function getTrue(){ $test="test"; write-host $test | out-null; return $true; } 
$answer=getTrue 
Write-Host $answer 
+0

这个工作很好,谢谢。 – StaticMethod 2012-07-31 16:15:22